AWS Budgets

AWS の利用コスト、使用量、リザーブドインスタンスのカバレッジに対してカスタム予算を設定し、閾値超過時にアラートや自動アクションを実行するコスト管理サービス

概要

AWS Budgets は、AWS の支出と使用量に対してカスタム予算を設定し、予算の超過や予測超過をリアルタイムで監視するサービスです。コスト予算、使用量予算、RI (リザーブドインスタンス) カバレッジ予算、RI 利用率予算、Savings Plans カバレッジ予算、Savings Plans 利用率予算の 6 種類を作成でき、閾値を超えた際にメール通知、SNS 通知、Chatbot 通知を送信します。Budget Actions を使えば、予算超過時に IAM ポリシーの適用や EC2/RDS インスタンスの停止を自動実行することも可能です。

予算タイプの選択と実務的な設定パターン

6 種類の予算タイプのうち、実務で最も使われるのはコスト予算です。月次のコスト予算を設定し、実績が予算の 80%、100%、予測が 100% を超えた時点でアラートを発報する 3 段階の閾値設定が標準パターンです。予算はアカウント全体だけでなく、サービス別、リンクドアカウント別、タグ別にフィルタリングして設定できます。たとえば「本番環境 (env=prod タグ) の月間コストが 5,000 USD を超えたらアラート」のような粒度で管理できます。使用量予算は、特定サービスの使用量 (EC2 の稼働時間、S3 のストレージ量、Lambda の呼び出し回数など) に対して閾値を設定します。コストではなく使用量で管理したい場合に有効で、無料枠の消費状況の監視にも使えます。RI カバレッジ予算と RI 利用率予算は、リザーブドインスタンスの購入戦略を最適化するために使います。カバレッジが低い (オンデマンドの割合が高い) 場合は追加購入を検討し、利用率が低い場合は過剰購入の可能性を示唆します。Savings Plans についても同様のカバレッジ/利用率予算が設定可能です。

Budget Actions による自動コスト制御

Budget Actions は予算超過時に自動的にアクションを実行する機能で、人間の介入なしにコストの暴走を防止します。実行可能なアクションは 3 種類あります。第一に、IAM ポリシーの適用です。予算超過時にリソース作成を禁止する IAM ポリシーをユーザーやロールにアタッチし、新規リソースの作成を物理的にブロックします。第二に、SCP (サービスコントロールポリシー) の適用です。Organizations を使っている場合、特定の OU やアカウントに対して SCP を適用し、高コストなサービスの利用を制限できます。第三に、EC2 または RDS インスタンスの停止です。開発環境のインスタンスを予算超過時に自動停止するパターンが典型的です。アクションの実行モードは「自動実行」と「承認後実行」の 2 つから選べます。本番環境に影響するアクションは承認後実行にし、開発環境のインスタンス停止は自動実行にするのが安全です。注意点として、Budget Actions は予算の評価タイミング (通常 1 日 3 回) に依存するため、リアルタイムの制御には向きません。リアルタイムのコスト異常検知には Cost Anomaly Detection を併用します。

Cost Explorer と Cost Anomaly Detection との使い分け

AWS のコスト管理ツールは役割が異なるため、適切に組み合わせて使います。Budgets は「計画に対する実績の監視」が主目的で、事前に設定した予算に対して実績と予測を追跡します。月次・四半期・年次の予算管理に適しており、経営層への報告や部門別のコスト配分に使われます。Cost Explorer は「過去のコストの分析と可視化」が主目的で、サービス別、アカウント別、タグ別、リージョン別にコストの推移をグラフで確認できます。コスト増加の原因調査や、リザーブドインスタンスの購入推奨の確認に使います。Cost Anomaly Detection は「異常なコスト変動の自動検知」が主目的で、機械学習モデルが過去のコストパターンを学習し、通常とは異なるコスト増加を自動的に検出してアラートを送信します。設定不要で動作するため、予算を設定していないサービスの予期しないコスト増加も検知できます。実務での推奨構成は、Budgets で月次予算を設定し、Cost Anomaly Detection で日次の異常検知を有効化し、月末に Cost Explorer で詳細分析を行うという 3 層構成です。最初の 2 つの予算は無料で、3 つ目以降は 1 予算あたり月額 0.02 USD と非常に安価なため、コスト管理の第一歩として全アカウントに設定すべきです。

共有するXB!