Q30 — AWS SOA-C02 第1章
第 30/100 問 | ← 第1章
ある企業は、夜間中に非本番環境のAmazon EC2インスタンスを停止することを決定しました。ITマネージャーは、環境タイプタグの値がnon-productionであるEC2インスタンスが夜間に起動された際に、ほぼリアルタイムで通知を受ける必要があります。 この要件を最も運用効率よく満たすソリューションはどれですか?
- A. SMTPクライアントライブラリを備えたAWS Lambda関数を設定します。このLambda関数をAWS Health Dashboardにサブスクライブして、EC2インスタンスが実行状態になったときに通知を受け取ります。Lambda関数をAmazon Pinpointを使用してITマネージャーにメール通知を送信するよう設定します。さらに、昼間中の最初のLambda関数からの呼び出しを制限するための第2のLambda関数をデプロイします。
- B. Amazon EC2 APIをクエリして各EC2インスタンスの状態を確認するAWS Lambda関数をデプロイします。EC2インスタンススケジューラーを使用して、このLambda関数を夜間に毎分実行し、実行状態にある非本番EC2インスタンスごとにITマネージャーにメール通知を送信します。
- C. EC2インスタンスの状態変化通知イベントタイプを含むAmazon EventBridgeルールを作成します。イベントを実行状態のみにフィルタリングします。このルールのターゲットとしてAWS Lambda関数を作成します。Lambda関数を現在時刻およびEC2インスタンスのタグをチェックして環境タイプを判定するよう設定します。通知のターゲットとしてAmazon Simple Notification Service(Amazon SNS)トピックを作成し、ITマネージャーのメールアドレスをこのSNSトピックにサブスクライブします。 ✓
- D. EC2インスタンスのメタデータ(環境タイプを含む)をAmazon DynamoDBテーブルに保存します。EC2インスタンスにカスタムアプリケーションをデプロイします。このカスタムアプリケーションを夜間に毎分DynamoDBデータをポーリングし、Amazon EC2 APIをクエリして各インスタンスの状態を確認するよう設定します。さらに、実行状態にある非本番EC2インスタンスごとにITマネージャーにメール通知を送信するよう設定します。
正解: C. EC2インスタンスの状態変化通知イベントタイプを含むAmazon EventBridgeルールを作成します。イベントを実行状態のみにフィルタリングします。このルールのターゲットとしてAWS Lambda関数を作成します。Lambda関数を現在時刻およびEC2インスタンスのタグをチェックして環境タイプを判定するよう設定します。通知のターゲットとしてAmazon Simple Notification Service(Amazon SNS)トピックを作成し、ITマネージャーのメールアドレスをこのSNSトピックにサブスクライブします。
解説
この問題は、EC2インスタンスの状態変化を効率的に監視し、通知をトリガーするアーキテクチャ設計を問うものです。AWSアーキテクチャベストプラクティスドキュメントによると、イベント駆動型のサーバーレスアプローチは、リアルタイム性およびリソース効率の面でポーリング方式よりも優れています。EventBridgeはEC2の状態変化イベントを直接キャプチャでき、APIポーリングのオーバーヘッドを回避します(オプションB/Dを除外)。Lambda関数はイベント発生時にのみ実行され、時間判定およびタグフィルタリングにより、夜間に起動した非本番インスタンスのみを処理し、無駄な実行を最小限に抑えます。SNSは通知ロジックをマネージドサービスで処理するため、SMTPライブラリ(オプションA)やカスタムアプリケーション(オプションD)よりも信頼性が高いです。オプションCは複数のマネージドサービスを統合し、イベント応答性、リソース利用効率、保守コストの観点で最適なソリューションです。