AWSコスト最適化の秘訣! しきい値設定でスマートに予算を管理する

記事タイトルとURLをコピーする

カスタマーサクセス部の山﨑です。

AWSを利用している企業にとって、コスト管理は避けて通れない課題です。多種多様なサービスが提供されるAWS環境では、不用意な利用が思わぬコスト増加につながる可能性があります。

本記事では、AWSのコスト管理において重要な役割を果たす「AWS Budgets」と「AWS Cost Anomaly Detection」についてしきい値の設定という観点から、両サービスの違いや、それぞれのサービスでどのような設定が効果的かについて詳しく解説します。

0. はじめに

想定読者

  • AWSアカウントのコスト管理を任されている方
  • AWS Budgets Alerts や Cost Anomaly Detection でしきい値の判断基準に悩んでいる方

本ブログで伝えたいポイント

  • まずは、AWS Budgets Alerts と Cost Anomaly Detection で設定可能なしきい値を理解することが大切
  • Cost Anomaly Detection はコスト急騰を検知、AWS Budgets Alerts はコストの上昇傾向を検知、という役割分担でそれぞれ設定すると効果的
  • AWS Budgets Alerts のしきい値の設定で迷ったら、「しきい値を予算金額に占める割合(%)に指定し、予測金額が予算比100%を超えると予想された際にアラート設定」する
  • Cost Anomaly Detection のしきい値の設定で迷ったら、「モニタータイプとしてAWSのサービスを選択し、予想支出を上回る割合として50%を指定してアラート設定」する

1. AWSアカウントのコスト管理で利用するAWSサービス

以下、AWSアカウントのコスト管理でよく利用するAWSサービスを簡単に紹介します。なお、本ブログでは、「AWS Budgets」「AWS Cost Anomaly Detection」におけるしきい値の設定に焦点を当てます。

1.1 AWS Cost Explorer

AWS Cost Explorerは、AWS利用料の可視化や分析を行うことができるAWSサービスです。 Cost Explorerの初期表示画面ではAWS利用料に占める割合が大きいAWSサービスの上位9つが積み上げ棒グラフとして表示されています。表示される期間は先月末日を起点に過去6ヶ月間で、月別に表示されます。

Cost Explorer の初期画面

Cost Explorer では分析粒度を「月別」「日別」「毎時」と変更することができたり、AWSサービスやAWSリージョンごとに分析できたりと、様々な分析オプションが用意されているため、コスト分析を行う際は必ず利用する機能です。

Cost Explorer に関連する弊社ブログ記事がいくつかありますので、詳細はこれらをご覧ください。

blog.serverworks.co.jp

1.2 AWS Budgets

AWS Budgetsは、AWS利用料を「予算」として設定し、管理することができるAWSサービスです。また、予算に対してしきい値を設定する(Budgets Alerts)ことで、アラートをあげることが可能です。

例えば、あるシステムに月額5,000ドル分のIT予算が割り当てられている場合、AWS Budgets の予算として月額5,000ドルを設定してしきい値を設けることでコスト状況を把握することができます。

AWS Budgets における予算設定の詳細画面

AWS Budgets に関連する弊社ブログ記事がいくつかありますので、詳細はこれらをご覧ください。

blog.serverworks.co.jp

1.3 AWS Budgets Reports

AWS Budgets で設定するアラートは、設定した予算のしきい値に抵触しない限りAWS利用料ならびに使用状況が通知されません。AWS Budgetsレポートを利用すれば、日次/週次/月次のいずれかの間隔でAWS利用料を指定のEメールアドレス宛に通知することができます。

AWS Budgets Reports の通知メール

1.4 AWS Cost Anomaly Detection

AWS Cost Anomaly Detectionは、AWS利用料およびAWSリソースの使用状況を継続的に監視することでAWS利用料における異常値(コスト急騰)を検出し、通知することができるサービスです。このサービスはCost Explorerが持つ機能の一つであるため、利用する際はCost Explorerをあらかじめ有効化しておく必要があります。

Cost Anomaly Detection の仕様については、AWS Budgets と比較した弊社ブログがありますので詳細はこちらをご覧ください。

blog.serverworks.co.jp

2. AWS Budgets で設定するしきい値について

2.1 Budgets Alerts のしきい値設定パターン

しきい値の設定画面

Budgets Alerts では、「しきい値」「しきい値の種類」「トリガー」の3つの設定を組み合わせて、最終的なしきい値を設定します。以下、設定の組み合わせ例です。

しきい値 しきい値の種類 トリガー 動作
50 絶対値 実際 実績コストが$50を超えたらアラート
50 絶対値 予測 予測コストが$50を超えたらアラート
50 予算額の% 実際 実績コストが予算の50%を超えたらアラート
50 予算額の% 予測 予測コストが予算の50%を超えたらアラート

2.1.1 実績コストへのアラート設定

アラート設定は複数作成することができるため、しきい値を予算金額に占める割合(%)に指定し「25%」「50%」「75%」「100%」と段階的にアラート設定することをAWS利用料が一次関数的に(想定通りに)増加しているかどうかの把握が可能です。

2.1.2 予測コストへのアラート設定

しきい値を予算金額に占める割合(%)に指定し、予測金額が予算比100%を超えると予想された際にアラート設定することで、予算超過の可能性を予め把握することができます。

2.1.3 実績コストと予測コスト、どちらのアラートが良いのか?

実績コストへのアラート設定、予測コストへのアラート設定はそれぞれ一長一短がありますが、個人的には予測コストへのアラート設定をオススメします。

理由は以下の通りです。

  • AWS利用料の推移は、AWS Budgets Reports で週次レポートを設定すれば確認できる(定点観測が可能)
  • 予算超過の可能性を検知することで、予算超過を防ぐ対策を早期に打つことができる
しきい値 しきい値の種類 トリガー 動作
100 予算額の% 予測 予測コストが予算の100%を超えたらアラート
150 予算額の% 予測 予測コストが予算の150%を超えたらアラート

3. AWS Cost Anomaly Detection で設定するしきい値について

3.1 AWS Cost Anomaly Detection で設定可能なモニタータイプ

Cost Anomaly Detection で設定可能なモニタータイプは4つあり、「AWSのサービス」が推奨されています。

モニタータイプ 説明 特徴 メリット
AWSのサービス 各AWSサービスごとのコストを個別に監視 特定のサービスのコストが急増した場合などにアラートを発します。 AWSサービスごとの詳細なコスト分析が可能。異常なコスト増加の原因を特定しやすい。
連結アカウント 複数のAWSアカウントをまとめて監視 組織全体のコストを把握したい場合に有効です。複数のアカウントで構成される組織において、特定のアカウントのコストが異常に高い場合などにアラートを発します。 組織全体の支出状況を把握したい場合、複数のチームや部門のコストを比較したい場合に役立つ
コスト配分タグ コスト配分タグで定義されたタグに基づいてコストを監視 プロジェクト、チーム、環境など、特定のコストカテゴリに属するコストの変化を監視できます。 プロジェクトごとのコストを把握したい場合、チームごとのコストを比較したい場合などに有効。
コストカテゴリ コストカテゴリで定義されたカテゴリに基づいてコストを監視 特定のコストカテゴリに属するコストの変化を監視できます。コスト配分タグとは異なる定義方法でカテゴリを管理したい場合に利用します コスト配分タグと同様

3.2 AWS Cost Anomaly Detection のアラート頻度

Cost Anomaly Detection では、アラート頻度として「個々のアラート」「日次の要約」「週次の要約」のいずれかを設定可能です。

アラート頻度 説明 活用シーン
個々のアラート 異常が検出された時点で即座にアラートが通知されます。 コスト異常を早期に発見し、迅速に対応したい場合。リアルタイムな監視が必要な場合
日次の要約 1日に1回、検出された異常のまとめが通知されます。 毎日一度、コスト異常の状況を把握したい場合。詳細な分析は別途行う場合。
週次の要約 1週間に1回、検出された異常のまとめが通知されます。 週単位でコスト異常の傾向を把握したい場合。長期的なコスト管理に役立ちます。

3.3 AWS Cost Anomaly Detection のしきい値の種類

Cost Anomaly Detection では、設定するしきい値の種類として「予想支出を上回る金額」「予想支出を上回る割合」のいずれかを設定可能です。

しきい値の種類 説明 活用シーン
予想支出を上回る金額 特定の金額を超えた場合にアラートを発します。 厳密な予算管理が必要な場合、特定のAWSサービスへの支出を制限したい場合などに有効です。
予想支出を上回る割合 予想支出に対する増加率が一定の割合を超えた場合にアラートを発します。 ビジネス状況の変化に柔軟に対応したい場合、相対的なコスト増加を把握したい場合などに有効です。

3.4 AWS Cost Anomaly Detection で設定するしきい値パターン

Cost Anomaly Detection のアラート設定画面

モニタータイプはAWSが推奨する「AWSのサービス」を選択する前提で、設定可能なしきい値について下表に整理します。

アラートの頻度 しきい値の種類 しきい値 説明
個々のアラート 予想支出を上回る割合 50% AWSサービスの実績コストが、Cost Anomaly Detection の予測モデルから算出された支出の150%を超えた場合に即座にアラートが発生する
個々のアラート 予想支出を上回る金額 50ドル AWSサービスの実績コストが、Cost Anomaly Detection の予測モデルから算出された支出よりも50ドル上回った場合に即座にアラートが発生する
日次の要約 予想支出を上回る割合 50% AWSサービスの実績コストが、Cost Anomaly Detection の予測モデルから算出された支出の150%を超えた場合に1日に1回、検出されたコスト急騰のサマリーが通知される
日次の要約 予想支出を上回る金額 50ドル AWSサービスの実績コストが、Cost Anomaly Detection の予測モデルから算出された支出よりも50ドル上回った場合に1日に1回、検出されたコスト急騰のサマリーが通知される
週次の要約 予想支出を上回る割合 50% AWSサービスの実績コストが、Cost Anomaly Detection の予測モデルから算出された支出の150%を超えた場合に週に1回、検出されたコスト急騰のサマリーが通知される
週次の要約 予想支出を上回る金額 50ドル AWSサービスの実績コストが、Cost Anomaly Detection の予測モデルから算出された支出よりも50ドル上回った場合に週に1回、検出されたコスト急騰のサマリーが通知される

3.4.1 個々のアラート、日次の要約、週次の要約、どれが良いのか?

  • 本番環境のように即座にコスト上昇を検知したい場合は「個々のアラート」がオススメ
  • 検証環境や開発環境のように新規開発などで費用変動が比較的大きい環境では「日次の要約」がオススメ
  • 検証環境や開発環境のように新規開発などで費用変動が比較的大きい環境で、通知を最小限に押さえて定点観測したい場合は「週次の要約」がオススメ

3.4.2 予想支出を上回る割合、予想支出を上回る金額、どちらが良いのか?

モニタータイプとして「AWSのサービス」を選択している場合
  • EC2(従量課金)、S3(ストレージ単価)、Lambda(リクエスト単価)などAWSサービスごとの課金モデルが異なり、しきい値として適切な固定金額を決定するのが難しいので「予想支出を上回る割合」がオススメ
    • 設定イメージ)AWSサービスの実績コストが、Cost Anomaly Detection の予測モデルから算出された支出の150%を超えた場合にアラート通知する
モニタータイプとして「連結アカウント」や「コスト配分タグ」を選択している場合
  • 指定のAWSアカウントやコスト配分タグで分類される環境ごとに厳格な予算設定がされており、予想支出が予算を超えないように固定金額で設定したい場合は「予想支出を上回る金額」がオススメ

    • 設定イメージ)指定のAWSアカウントの月額コストがCost Anomaly Detection の予測モデルから算出された支出よりも500ドル超えた場合にアラート通知
  • 指定のAWSアカウントやコスト配分タグで分類される環境ごとに全体的なコストの増加率を把握したい場合は「予想支出を上回る割合」がオススメ

    • 設定イメージ)指定のAWSアカウントの月額コストがCost Anomaly Detection の予測モデルから算出された支出の150%を超えた場合にアラート通知する

4. しきい値の設定に迷ったら、まずはこれを設定してみましょう!

4.1 AWS Budgets

予算超過の可能性を早期に検知するために以下の設定をしておきましょう!

しきい値 しきい値の種類 トリガー 動作
100 予算額の% 予測 予測コストが予算の100%を超えたらアラート

4.2 AWS Cost Anomaly Detection

モニタータイプはAWSによって推奨されている「AWSのサービス」を選び、その他は以下の設定をしておきましょう!

アラートの頻度 しきい値の種類 しきい値 説明
個々のアラート 予想支出を上回る割合 50% AWSサービスの実績コストが、Cost Anomaly Detection の予測モデルから算出された支出の150%を超えた場合に即座にアラートが発生する

5. まとめ

本記事では、AWSのコスト管理において重要な役割を果たす「AWS Budgets」と「AWS Cost Anomaly Detection」について、しきい値の設定という観点から解説しました。

  • AWS Budgets で予算を設定し、予測コストに基づいたアラート設定を行うことで、予算超過を未然に防ぐ
  • AWS Cost Anomaly Detection で「予想支出を上回る割合」や「予想支出を上回る金額」など、様々なしきい値を設定することで、コスト異常を早期に発見する

両サービスを組み合わせることで、より効果的なコスト管理を実現できます。本記事で紹介した内容を参考に、自社のAWS環境に最適なコスト管理体制を構築してみてください。

山﨑 翔平 (Shohei Yamasaki) 記事一覧はコチラ

カスタマーサクセス部所属。2019年12月にインフラ未経験で入社し、AWSエンジニアとしてのキャリアを始める。2023 Japan AWS Ambassadors/2023-2024 Japan AWS Top Engineers