Cloud Service
AWS Budgets
コストや使用量の予算を設定し、超過の実績や予測をアラートで通知してくれるコスト管理サービス。
- 1.コストや使用量に予算しきい値を設定し、超過時や超過予測時に通知できる。
- 2.実績ベースだけでなく、予測ベースのアラートで超過する前に気づける。
- 3.通知だけでなく、予算アクションで自動対応につなげることもできる。
解決する課題
クラウドは使った分だけ課金されるため、気づかないうちに利用が増えて月末の請求が想定を大きく超える、という事態が起こりがちです。請求書を見て初めて超過に気づいても、その時点では支出は確定しています。事前に上限の目安を決め、それに近づいたら早めに知る仕組みがなければ、コストの暴走を止められません。
AWS Budgets はあらかじめ予算を決めておき、次のような価値を提供します。
- コストや使用量に予算しきい値を設定し、実績がしきい値に達したら通知する
- 月末までの予測値を計算し、超過しそうな段階で前もって警告する
- リザーブドインスタンスや Savings Plans の利用率・カバレッジも予算として監視できる
- 通知にとどまらず、自動アクションで是正措置のトリガにできる
主要概念と用語
- 予算(Budget): 監視対象の上限や目標。コスト予算・使用量予算・予約系(利用率/カバレッジ)予算などの種類がある
- コスト予算: 一定期間に発生するコストの上限を金額で設定する予算
- 使用量予算: 特定の使用量(実行時間やデータ量など)に上限を設定する予算
- 予約系予算: リザーブドインスタンスや Savings Plans の利用率・カバレッジを目標値で監視する予算
- しきい値(Threshold): アラートを発火させる基準。予算額に対する割合または絶対値で指定する
- 実績ベースアラート(Actual): すでに発生した実績がしきい値を超えたときに通知する方式
- 予測ベースアラート(Forecasted): 期間終了時点の予測値がしきい値を超える見込みのときに通知する方式
- 予算アクション(Budget Actions): しきい値到達時に自動実行する是正措置。IAM ポリシーの適用やリソース停止などを定義できる
- フィルタ(スコープ): 予算の対象を絞り込む条件。サービス、アカウント、タグ、リージョンなどで限定できる
仕様・制限・クォータ
- 予算は期間を指定して評価する。月次・四半期・年次のほか、特定期間を一度だけ監視する設定もできる
- 1 つの予算に複数のアラートしきい値を設定でき、それぞれに実績ベースか予測ベースかを指定できる
- 通知先には E メールのほか、Amazon SNS トピックを指定でき、SNS 経由で他システムへ連携できる
- 予測は一定の利用履歴がたまって初めて算出されるため、使い始めて間もないアカウントでは予測アラートが機能しにくい
- アカウントあたりの予算数や、関連オブジェクトの上限など各種クォータが定義されている。具体的な上限値は変動しうるため、最新の公式ドキュメントで確認する
最初の一歩としては、アカウント全体に対する月次のコスト予算を作り、予測ベースで早めに、実績ベースで確定的に通知する二段構えがおすすめです。
内部の仕組み
AWS Budgets は請求・使用状況のデータを定期的に集計し、設定された予算と突き合わせて評価します。利用者がエージェントを入れたりインフラを構築したりする必要はありません。
- コストや使用量のデータは一定間隔で更新され、リアルタイムではなく数時間程度の遅延を伴って反映される
- 予測ベースアラートは、過去の利用傾向をもとに期間終了時点の見込み値を計算し、しきい値と比較する
- しきい値を超えると、設定された通知(E メールや SNS)が送られる
- 予算アクションを設定している場合は、しきい値到達を契機に定義済みの是正措置が実行される
集計データには遅延があるため、Budgets のアラートは「リアルタイムの即時検知」ではありません。瞬間的なスパイクの即時把握には別の監視手段を併用します。
設計パターン / ベストプラクティス
- 予測と実績の併用: 予測ベースで早期警告、実績ベースで確定的な超過通知という役割分担で、気づきと確実性を両立する
- スコープの細分化: サービス別・タグ別・アカウント別など、責任範囲ごとに予算を分けて担当者に通知を届ける
- タグ運用との連動: チームやプロジェクトのコスト配分タグを徹底し、タグでフィルタした予算で部門別の責任を明確にする
- 段階的なしきい値: 50%・80%・100% のように複数のしきい値を設定し、超過に至るまでの推移を段階的に把握する
- 自動対応の活用: 開発環境など止めても影響が小さい範囲では、予算アクションで権限の制限やリソース停止を自動化し、暴走を物理的に抑える
- 組織での集約: 複数アカウントを運用する場合は、組織管理の仕組みと組み合わせ、メンバーアカウントの予算を一元的に整備する
運用・監視
- コンソールのダッシュボードで、各予算の実績・予測・しきい値到達状況を一覧で確認できる
- アラートは E メールで関係者に届けるほか、SNS を経由してチャットや起票システムへ連携できる
- 予算の達成状況やレポートを定期的に確認し、しきい値や対象範囲を実態に合わせて見直す
- 予算アクションを使う場合は、誤発火による影響を避けるため、適用範囲と承認フローを事前に設計する
コスト
AWS Budgets には無料で使える枠が用意されており、一定数までの予算は追加費用なしで利用できます。それを超えて予算を増やすと、予算あたりの少額な日割り料金が発生する形が一般的です。
- まずは無料枠の範囲で、重要な予算(全体のコスト予算など)から整備するのが効率的
- 予算アクションなどの追加機能も含め、課金体系は変わりうるため、料金の詳細は公式の料金ページで確認する
- Budgets 自体の費用よりも、Budgets によって防げる無駄なコストのほうがはるかに大きいことが多い
予算 1 件あたりのコストはごく小さく、想定外の請求を 1 度防ぐだけで十分に元が取れます。コスト管理の基本装備として早めに導入する価値があります。
セキュリティ
- 予算の作成・閲覧・変更は IAM で権限を制御できる。コスト情報は機密性が高いため、閲覧できる利用者を最小権限で限定する
- 予算アクションでは IAM ポリシーの適用やリソース操作を行うため、実行に使うロールの権限を必要最小限に絞る
- SNS で通知を連携する場合は、トピックのアクセスポリシーを適切に設定し、想定外の購読者に通知が漏れないようにする
- 請求情報へのアクセス自体をアカウント設定で管理し、コスト管理機能を使える利用者を統制する
Well-Architected の観点
- コスト最適化: 支出に上限の目安を設けて早期に逸脱を検知することは、コスト最適化の柱の根幹をなす運用プラクティス
- 運用上の優秀性: 予算超過をイベントとして扱い、通知や自動対応のワークフローに組み込むことで、コスト管理を運用プロセスに統合できる
- 持続的な見直し: 予算と実績の差を定期的にレビューし、リソース計画やしきい値を継続的に改善するループを回せる
試験で問われるポイント
- 「予算を設定して超過の実績や予測をアラートで通知する」サービスといえば AWS Budgets
- 実績ベースだけでなく、超過する前に知らせる予測ベースのアラートを設定できる点が重要
- 通知先に SNS トピックを指定でき、E メール以外の連携が可能
- コストの可視化・内訳分析が主目的なら Cost Explorer、上限超過の検知・通知が主目的なら Budgets という役割分担
- 予算アクションでしきい値到達時に IAM 制限などの自動対応を実行できる
関連サービス・比較
コスト管理でよく対比されるのが AWS Cost Explorer です。Cost Explorer は支出の可視化と傾向分析が主目的、Budgets は上限の設定と超過の通知が主目的、という役割の違いを押さえます。
| 観点 | AWS Budgets | AWS Cost Explorer |
|---|---|---|
| 主目的 | 予算しきい値の設定と超過の通知 | コストと使用量の可視化と分析 |
| アラート | 実績・予測ベースで通知できる | 通知ではなくグラフや内訳の閲覧が中心 |
| 予測 | 予算に対する超過予測でアラートする | 将来コストの傾向を予測表示する |
| 自動対応 | 予算アクションで是正措置を起動できる | 自動対応の機能は持たない |
| 代表的な使いどころ | 支出の上限管理と早期警告 | 支出の原因分析と内訳の深掘り |
ハンズオン / CLI例
# 月次のコスト予算を作成する(予算定義と通知設定をファイルで渡す例)
aws budgets create-budget \
--account-id <アカウントID> \
--budget file://budget.json \
--notifications-with-subscribers file://notifications.json
# 作成済みの予算一覧と現在の実績・予測を確認する
aws budgets describe-budgets \
--account-id <アカウントID> \
--query "Budgets[].{Name:BudgetName,Limit:BudgetLimit,Actual:CalculatedSpend.ActualSpend}"
# 特定予算に設定された通知(しきい値)を確認する
aws budgets describe-notifications-for-budget \
--account-id <アカウントID> \
--budget-name <予算名>
AWS Service
AWS Budgetsを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
管理・ガバナンス
比較で見る軸
クラウド: AWS / カテゴリ: 管理・ガバナンス / 難易度: basic
導入後に効く点
実績ベースだけでなく、予測ベースのアラートで超過する前に気づける。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- 管理・ガバナンス
- 難易度
- basic
- 関連資格
- CLF-C02 / SOA-C02
- 設計柱
- cost
判断チェックリスト
- 自社の用途が「管理・ガバナンス / cost」に近いか確認する。
- 強みである「コストや使用量に予算しきい値を設定し、超過時や超過予測時に通知できる。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。