Q48 — AWS SAP-C02 第1章

第 48/75 問 | ← 第1章

Q123. ある会社は、アプリケーションを eu-west-1 リージョンで実行しており、開発環境(development)、テスト環境(testing)、本番環境(production)のそれぞれに別々のAWSアカウントを使用しています。すべての環境は、ステートフルな Amazon EC2 インスタンスおよび Amazon RDS for MySQL データベースを用いて、毎日24時間・週7日稼働しています。データベースのサイズは500 GB~800 GBです。 開発チームとテストチームは平日の業務時間のみ作業を行いますが、本番環境は24時間・365日稼働しています。同社はコスト削減を望んでおり、すべてのリソースには「environment」タグが付与されており、その値は「development」「testing」または「production」のいずれかです。運用負荷を最小限に抑えつつコストを削減するには、ソリューションアーキテクトは何を行うべきでしょうか?

正解: B. 平日の夜に実行される Amazon EventBridge ルールを作成します。このルールを設定して、タグに基づいてEC2インスタンスを停止する AWS Lambda 関数を呼び出します。さらに、平日の朝に実行される第2の EventBridge ルールを作成し、タグに基づいてEC2インスタンスを起動する別の Lambda 関数を呼び出します。

解説

コスト削減の観点では、開発・テスト環境のEC2インスタンスを非稼働時間(平日夜間~翌朝)に停止(stop)することで、課金を停止できます(RDSも同様に停止可能ですが、問題文ではEC2に焦点)。ただし、インスタンスを終了(terminate)すると、EBSボリュームやパブリックIPなどは失われ、復元には手動介入や追加設計が必要となり、運用負荷が高まります。したがって、停止(stop)と起動(start)を自動化するのが最もシンプルかつ運用負荷が低いアプローチです。選択肢Aは「1日1回」の実行頻度であり、平日・休日を問わず一律に処理するため、開発・テスト環境の業務時間外に正確に停止/起動できない可能性があります。一方、選択肢Bは「平日の夜に停止」「平日の朝に起動」と明確に分離しており、要件(業務時間のみ稼働)に正確に合致し、かつEC2のstop/start操作のみで済むため、運用負荷が最小限です。選択肢CおよびDはterminate/restoreを含み、RDSの場合はスナップショットからの復元に時間がかかり、またEC2の復元はAMIや自動化されたバックアップ戦略を前提とするため、追加の設計・検証・リスクが発生し、運用負荷が高くなります。よって、最も適切なのは選択肢Bです。