AWS Well-Architected 5本の柱を要約する（コスト最適化）

AWSのWell-Architected Frameworkを5本の柱ごとに自分なりの解釈を書いていきたいと思います。

今回はコスト最適化についてです。

---
# コスト最適化とは
> 最も低い価格でシステムを運⽤してビジネス価値を実現する能⼒

クラウドを効率的に使うためには今までと考え方を変えないといけないことが多いです。
パフォーマンス効率の柱の考え方と重なる部分もありますが、
ここではいかに安く使うかという観点で見ていきます。

[AWS Well-Architected 5本の柱を要約する（パフォーマンス効率）](https://qiita.com/toma_shohei/items/ce19743eab2c701a7308)


---

## 設計の原則
クラウドでのコスト最適化には、5 つの設計の原則があります。

|No|設計の原則|概要|
|:-----------------|:-----------------|:------------------|
|1|消費モデルを導⼊する|必要なコンピューティングリソースの費⽤のみを⽀払い、複雑な予測をすることなく、ビジネス要件に応じて使⽤量を増減|
|2|全体的な効率を測定する|ワークロードのビジネス成果とその実現にかかったコストを測定|
|3|データセンター運⽤のための費⽤を排除する|クラウドサービスを利用する|
|4|費⽤を分析し、帰結させる|クラウドでは、システムの使⽤状況とコストを正確に特定し、IT コストと各ワークロードの所有者との帰属関係を簡単に透明にできます。|
|5|アプリケーションレベルのマネージドサービスを使⽤して所有コストを削減する|Eメールの送信やデータベースの管理といったタスクの削減|

---



## ベストプラクティス
> ・優先するのは、市場投⼊までのスピードですか、それともコストですか?
・「万⼀の場合」の備えを過度に重視してしまう傾向が常にある

|No|ベストプラクティス|概要|
|:-----------------|:-----------------|:------------------|
|1|費⽤認識|コスト管理の方法を改める必要がある|
|2|費⽤対効果の⾼いリソース|リソースの使い方やを使うリソースを改める。|
|3|需要と供給を⼀致させる|オートスケール機能を利用|
|4|⻑期的な最適化|最新アーキテクチャのウォッチと既存アーキテクチャのチェック|
---

### 費⽤認識
> この使いやすさと事実上無限のオンデマンドキャパシティーを⽣かすには、費⽤に対する新しい考え⽅が必要になります。

従量課金モデルになることから、コスト管理がより重要性になってきます。
効率よくクラウドを利用するためには、今までと考え方を変えていく必要があります。


AWSではCostExplorerを利用して費用の確認が可能。

Cost Explorerとは

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/311339/47e3daa0-8ada-d022-d6ab-5f726a5ba9b6.png)


簡単にリソースを使えることから、不要なリソースを利用したままにしてしまうという新たな弊害も出てきます。
CostExprorerで意図しないコスト上昇が発見でき、不要リソースが無いかチェックを行うという運用が可能です。


### 費⽤対効果の⾼いリソース
> ワークロードにとって適切なインスタンスとリソースを使⽤することが、コスト削減の鍵になります。たとえば、レポート処理を⼩規模なサーバーで実⾏すると 5 時間かかるものの、費⽤が 2 倍の⼤規模なサーバーでは 1 時間で実⾏できるとします。どちらのサーバーでも同じ結果が得られますが、⻑期的に⾒れば⼩規模なサーバーで発⽣するコストの⽅が⼤きくなります。

* マネージドサービスを使⽤する
例えば、E メールを配信するためにサーバーを保守することなく、メッセージ単位で料⾦が発⽣するサービスを使⽤する。
メールサーバは常時起動が必須であり、冗長化することが多いことから大幅なコスト削減になることもある。

* EC2インスタンスの様々なオプション
オンデマンドインスタンス：利用分課金。コンピューティングキャパシティーに対して 1秒単位で料⾦が発⽣します。
リザーブドインスタンス：電車で言う定期のようなイメージ。ある程度の期間利用前提で最大75%のコスト削減が可能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/311339/96fe5cc1-03bd-99d2-8bb3-5d5c2ee38bf4.png)

* サービスを適切に選択
CDN（CloudFront）利用などでEC2利用料を低減
RDS で Amazon Aurora を活⽤すれば、⾼額のデータベースライセンスコストが発生しない
など


---

### 需要と供給を⼀致させる
> 需要に合わせてリソースを⾃動的にプロビジョンできます。

AutoScalingを利用する
[オートスケール（Amazon EC2 AutoScaling）の導入判断ポイント](https://qiita.com/toma_shohei/items/abebb60349836bd32814)

---

### ⻑期的な最適化
> AWS では新しいサービスと機能がリリースされるため、既存のアーキテクチャの決定をレビューし、現在でもコスト効率が最も優れているかどうかを確認することがベストプラクティスです。
AWS のマネージドサービスによってワークロードを⼤幅に最適化できます。

マネージドサービスを利用することにより、時間課金から利用量の課金となったり、運用コスト削減が見込めるため、コスト最適化できることがあります。
新たなマネージドサービスのリリースをウォッチしておくことが重要です。


---

## 主要なAWSのサービス
> コスト最適化に不可⽋なツールは Cost Explorer であり、ワークロードと組織の全体にわたり、使⽤量を可視化して深く理解するのに役⽴ちます。

|No|分野|AWSサービス|
|:-----------------|:-----------------|:------------------|
|1|費⽤認識|AWS Cost Explorer、AWS Budgets|
|2|費⽤対効果の⾼いリソース|Amazon CloudWatch と Trusted Advisor、RDS Amazon Aurora、AWS Direct Connect と Amazon CloudFront|
|3|需要と供給を⼀致させる|Auto Scaling|
|4|⻑期的な最適化|AWS ニュースブログと AWS ウェブサイトの最新情報セクション、AWS Trusted Advisor|


## レビューシート実践
◆コスト最適化 項番9 新しいサービスや機能がリリースされたときに、それらを取り込めるようにしていますか？

☐ 計画されておらず、必要そうであれば都度検討する
☐ 定期的にAWSのSAなどとミーティングを実施し、コスト削減に役立ちそうな新機能の適用を検討している
☐ コスト最適化チームを作るなど、コスト最適化のための検討プロセスが確立されている
☐ コスト削減のためワークロードのレビューと分析を行い、必要に応じて新サービス・新機能をチェックし性能テストを実施するプロセスがある

## 参考ドキュメント
〇AWS Well-Architected 
(日本語 201907)
https://d1.awsstatic.com/whitepapers/ja_JP/architecture/AWS_Well-Architected_Framework.pdf?sc_icampaign=aware_well_architected_jp_wa_framework&sc_ichannel=ha&sc_icontent=awssm-3366&sc_iplace=content&trk=awssm-3366_aware_well_architected_jp_wa_framework


〇Well-Architected_review_sheet
https://d1.awsstatic.com/webinars/jp/pdf/services/Well-Architected%E3%83%92%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%82%B7%E3%83%BC%E3%83%88%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88.77c25d2afd0a69894be16b95aae6a423011f5a1f.xlsx