Q4 — AWS SAA-C03 第13章
第 4/100 問 | ← 第13章
Q904. ある企業は、AWS Control Tower を使用してマルチアカウント戦略を AWS 上に展開しています。同社は各開発者に対して個別の AWS アカウントを提供しています。この企業は、開発者が発生させる AWS リソースコストを制限するためのコントロールを実装したいと考えています。 これらの要件を満たす、運用オーバーヘッドが最も少ない解決策はどれですか?
- A. 各開発者に対し、すべてのリソースに「CostCenter」キーと自身の名前を値とするタグを付与するよう指示します。AWS Config のマネージドルール「required-tags」を使用して、このタグの存在を検証します。タグが付与されていないリソースを終了する AWS Lambda 関数を作成します。また、AWS Cost Explorer を設定して、各開発者に毎日のコストレポートを送信し、支出状況を監視できるようにします。
- B. AWS Budgets を使用して、各開発者アカウントごとに予算を設定します。実際のコストおよび予測コストが割り当てられた予算を超えた場合に開発者に通知するよう、予算アラートを設定します。さらに、AWS Budgets のアクション機能を活用して、予算到達時に開発者の IAM ロールに「DenyAll」ポリシーを適用し、新たなリソース起動を防止します。 ✓
- C. AWS Cost Explorer を使用して各開発者アカウントのコストを監視・報告します。各開発者に毎日のコストレポートを送信するよう Cost Explorer を設定し、支出状況を把握できるようにします。また、AWS Cost Anomaly Detection を活用して異常な支出を検出し、アラートを提供します。
- D. AWS Service Catalog を使用して、開発者がコスト範囲が限定されたリソースのみを起動できるようにします。各 AWS アカウントに AWS Lambda 関数を作成し、各営業日終了時に実行中のリソースを停止するよう設定します。さらに、Lambda 関数を設定して、各営業日開始時にリソースを再開できるようにします。
正解: B. AWS Budgets を使用して、各開発者アカウントごとに予算を設定します。実際のコストおよび予測コストが割り当てられた予算を超えた場合に開発者に通知するよう、予算アラートを設定します。さらに、AWS Budgets のアクション機能を活用して、予算到達時に開発者の IAM ロールに「DenyAll」ポリシーを適用し、新たなリソース起動を防止します。
解説
要件を満たし、かつ運用オーバーヘッドが最も少ない解決策は、選択肢 B です。AWS Budgets を使用して各開発者アカウントごとに予算を設定し、実際および予測コストに対するアラートを設定することで、開発者は自らの支出を事前に把握・管理できます。さらに、予算到達時に AWS Budgets のアクション機能により開発者の IAM ロールに「DenyAll」ポリシーを自動適用することで、新たなリソース起動を即座に阻止し、コスト増加を実質的に抑制できます。これは、AWS が提供するネイティブなコスト管理サービスであり、手動でのタグ管理やカスタム Lambda 関数の保守、複雑なリソースライフサイクル制御などは不要です。他の選択肢は以下のような課題があります:A はタグ付けの遵守依存度が高く、タグ漏れによるコスト制御の失敗リスクがあり、Lambda 関数の継続的なメンテナンスも必要です。C は監視・アラート機能には優れていますが、コスト発生そのものを制御する機構は備えていません。D は Lambda 関数の継続的な保守が必要であり、営業時間外の作業や一時的な負荷増加など柔軟な利用ニーズへの対応が困難で、予算ベースの制御ほど確実性・効率性に優れません。したがって、予算設定・アラート・自動制御をワンストップで実現できる選択肢 B が、最もシンプルかつ効果的な解決策です。