【正解】D
【0からの解説】
EC2 のライフサイクル状態変化(起動・停止・終了など)は EventBridge に「EC2 Instance State-change Notification」イベントとして自動的に発行されます。複数アカウントのイベントを一箇所に集約する標準パターンは「クロスアカウントのイベントバス連携」です。具体的には、(1) メイン(受信側)アカウントのデフォルトイベントバスに、各メンバーアカウントからの PutEvents を許可するリソースベースのアクセス許可を設定し、(2) 各メンバーアカウントに、EC2 ライフサイクルイベントをメインアカウントのイベントバスへ転送する EventBridge ルールを作成し、(3) メインアカウント側にそのイベントに一致するルールを作って SQS キューをターゲットにします。D はこの 3 ステップを正しく記述しています。
【誤りの選択肢】
A:「EC2 がイベントを他アカウントのイベントバスに直接配信するよう構成する」設定は存在しません。EC2 イベントは自アカウントの EventBridge に出るため、明示的なバス間転送が必要です。
B:EventBridge のルールはターゲットとして他アカウントの「イベントバス」を指定できますが、他アカウントの SQS キューを直接クロスアカウントのターゲットにする方式(このシナリオ)としては正しいクロスアカウント集約パターンになっていません。標準パターンはメインアカウントのイベントバスへ転送する D です。
C:全アカウントの全 EC2 を毎分スキャンする Lambda は非効率でスケールせず、イベント駆動でないため取りこぼしや遅延が生じ、ライフサイクルイベント収集の正しいアプローチではありません。
【参考】
EventBridge のクロスアカウントイベント送信EventBridge と EC2 の状態変化イベント