AWSアカウントを作成したら最初にやるべき最低限のこと（FinOps観点）

## はじめに

みなさん、こんにちは。今回はAWSアカウントを新たに作成した後にどのようなシステムを構築するとしても、**FinOps(コスト最適化)の観点で**実際にシステムを構築していく前にかならず設定しておくべき、設定しておいた方がよい項目について紹介していきたいと思います。

大半は過去に書いた記事と同じなのですが少しだけアップデートしています。なお、過去の記事も今回の記事もシングルアカウント構成を前提とし、AWS Organizationsを活用したマルチアカウント構成でのみ利用可能な機能については除外して紹介してますので、その点ご注意ください。

https://chacco38.github.io/posts/2023/04/aws-baseline-configuration-for-all-environment/

## FinOps（コスト最適化）観点でやるべきこと

### #1. IAMユーザーに対するコスト情報へのアクセス有効化

コストに関するサービスの一部は、デフォルトだとルートユーザーにしかアクセスする権限がありません。

しかし、セキュリティ観点からルートユーザの使用は原則しない方針とすべきであることから、IAMユーザーからもコストを確認できるようにルートユーザーのマイアカウント画面から有効化しておくことを強くオススメします。

:::note info
**絶対にやるべきこと**

- IAMユーザーに対するコスト情報へのアクセス有効化
:::

### #2. AWS Cost Explorerの有効化

Cost ExplorerはAWSの利用コストを可視化するサービスで、マネジメントコンソールを介してルートユーザーがはじめてCost Explorerの画面にアクセスすることで、本AWSアカウントに対するCost Explorer機能が有効化されるようになっています。

サービスごとの月別、日別のコストをCost Explorerの画面から確認する分には無償で利用することができるため、 IAMユーザーに対するコスト情報へのアクセス有効化設定と併せて実施しておくことをオススメします。

:::note info
**絶対にやるべきこと**

- Cost Explorerの有効化
:::

ご参考）[AWS Cost Explorer Pricing](https://aws.amazon.com/jp/aws-cost-management/aws-cost-explorer/pricing/)

### #3. 予算の設定とアラートの有効化

AWS BudgetsはAWSコストに対する予算を設定し、その実績値や予測値があらかじめ定めた閾値を超えた際にメールで通知するためのサービスです。

2つの予算設定までは無料となるため、意図しない利用料の増加などの検知のためにも少なくとも1つは予算の設定と、いくつかのチェックポイント（たとえば、実際の支出が予算に対して50%、80%、100%を超えた時点や月末時点の支出予測値が予算に対して100%を超えるだろうと判断した時点でアラートをあげるなど）を設定しておくことをオススメします。

:::note info
**絶対にやるべきこと**

- 少なくとも1つの予算の登録（2つの予算設定までは無料）
- アラート閾値の設定
- 通知先メールアドレスの登録
:::

ご参考）[AWS Budgets Pricing](https://aws.amazon.com/jp/aws-cost-management/aws-budgets/pricing/)

### #4. Cost Anomaly Detectionの有効化

Cost Anomaly Detection(コスト異常検出)は機械学習を用いて通常のパターンとは違う異常なコストの発生を検知するサービスで、異常と判断されたコストの量や比率があらかじめ定めた閾値を超えた際にアラートをあげることが可能です。

追加料金なしで利用することが可能なため、誤った操作やアカウント乗っ取りなどによる異常なコスト発生をいち早く検知できるようにするためにも有効化しておくことをオススメします。

:::note info
**ぜひやってほしいこと**

- Cost Anomaly Detectionの有効化
:::

### #5. Compute Optimizerの有効化

Compute Optimizerは稼働するEC2インスタンス、RDSインスタンス、Lambda関数などの統計データを分析して、過剰なスペックを搭載しているインスタンスやリソース不足によりパフォーマンスに影響が出ているインスタンスを検出し、最適なインスタンスタイプやインスタンスサイズの提案を実施してくれるサービスです。

過去14日間の統計データをベースにした提案であれば、追加料金なしで利用することが可能なため有効化しておくことをオススメします。

:::note info
**ぜひやってほしいこと**

- Compute Optimizerの有効化
:::

ご参考）[料金 - AWS Compute Optimizer](https://aws.amazon.com/jp/compute-optimizer/pricing/)

### #6. Cost Optimization Hubの有効化

Cost Optimization Hubはさまざまなサービスから提供されるコスト最適化に関するレコメンデーションの統合、重複の排除、推定削減額の定量化を自動的に行うAWS Billing and Cost Managementサービスのひとつの機能です。コスト最適化の機会を特定するために複数のAWSサービスへアクセスする手間を削減でき、かつ追加料金なしで利用することが可能なため、本機能を有効化しておくことをオススメします。

:::note info
<u>**ぜひやってほしいこと**</u>

- Cost Optimization Hubの有効化
:::

### #7. Trusted Advisorのコスト最適化チェックの有効化

Trusted Advisorのコスト最適化チェックは、さまざまなAWSサービスに対するコスト削減の機会を特定することができるAWSサポートのひとつの機能で、ビジネス以上のAWSサポートプランに加入することで利用できるようになります。

Trusted Advisor有効化のためだけに加入する必要はありませんが、それ以外の提供機能も含めて総合的に判断した上で、必要に応じてビジネス以上のサポートプラン加入を検討してください。

:::note info
<u>**必要に応じてやってほしいこと**</u>

- ビジネス以上のサポートプランへの加入
:::

ご参考）[AWS Support プラン比較](https://aws.amazon.com/jp/premiumsupport/plans/)

## 最後に

本資料ではAWSアカウントを新たに作成した後にどのようなシステムを構築するとしても、 実際のシステム構築前にかならず設定しておくべき/設定した方がよいFinOps観点での設定項目について紹介してきました。

なお、本資料では触れておりませんが、AWS環境の設定以外にも実際のシステム環境前にAWSリソースの命名規則やタグ付け戦略などについても、あらかじめおおまかに検討しておくと後続フェーズが楽になりますのでこの段階で検討しておくのもオススメです。

最後に、本資料に記載の内容は実際のシステムを構築する前にやっておくべき項目であり、あくまでここからがスタートラインとなります。実際にシステムを構築する際には、引き続き検討していく必要がございます。その点ご承知おきください。

---

- AWS は、米国その他の諸国における Amazon.com, Inc. またはその関連会社の商標です。
- その他、本資料に記述してある会社名、製品名は、各社の登録商品または商標です。