Q53 — AWS SAA-C03 第3章
第 53/65 問 | ← 第3章
Q183. ある企業では、新入社員向けのトレーニングを提供するための3層構成のWebアプリケーションを使用しています。このアプリケーションは1日あたり12時間のみアクセスされます。同社は、データストレージにAmazon RDS for MySQL DBインスタンスを利用しており、コストを最小限に抑えたいと考えています。要件を満たすために、ソリューションアーキテクトは何を行うべきでしょうか?
- A. AWS Systems Manager Session Manager用のIAMポリシーを設定します。そのポリシー用のIAMロールを作成し、ロールの信頼関係を更新します。DBインスタンスの自動起動および停止を設定します。
- B. Amazon ElastiCache for Redisのキャッシュクラスターを作成し、DBインスタンスが停止中の際にユーザーがキャッシュからデータにアクセスできるようにします。DBインスタンスの起動後にキャッシュを無効化(invalidate)します。
- C. Amazon EC2インスタンスを起動します。Amazon RDSへのアクセスを許可するIAMロールを作成し、EC2インスタンスにアタッチします。cronジョブを設定して、指定されたスケジュールでEC2インスタンスを起動および停止します。
- D. DBインスタンスの起動および停止を行うAWS Lambda関数を作成します。Amazon EventBridge(Amazon CloudWatch Events)のスケジュールルールを作成し、それらがLambda関数を呼び出すように設定します。Lambda関数をこれらのルールのイベントターゲットとして構成します。 ✓
正解: D. DBインスタンスの起動および停止を行うAWS Lambda関数を作成します。Amazon EventBridge(Amazon CloudWatch Events)のスケジュールルールを作成し、それらがLambda関数を呼び出すように設定します。Lambda関数をこれらのルールのイベントターゲットとして構成します。
解説
Amazon RDS for MySQL DBインスタンスは、1日12時間しか使用されないため、不要な稼働時間を減らすことでコスト削減が可能です。RDSにはネイティブの自動起動/停止機能はありませんが、AWS LambdaとAmazon EventBridge(CloudWatch Events)を組み合わせることで、スケジュールに基づいた起動・停止を実現できます。これは、管理負荷が少なく、サーバーレスかつ安全な方法です。選択肢AはSession Managerと信頼関係の設定はRDSの起動/停止とは無関係であり、誤りです。選択肢Bは、キャッシュを導入してもDB自体の稼働時間を短縮できず、コスト削減の目的には合致しません。選択肢CはEC2インスタンスの起動/停止を制御していますが、問題はRDS DBインスタンスの起動/停止であり、EC2は関係ありません。したがって、正解はDです。