Q6 — AWS SAA-C03 第4章

第 6/105 問 | ← 第4章

Q201. 報告チームは、毎日 Amazon S3 バケットにファイルを受信します。報告チームは、これらのファイルを手動で確認し、毎日同じ時刻に、初期の S3 バケットから分析用の S3 バケットへファイルをコピーして、Amazon QuickSight で使用しています。他のチームも、より多くのファイル(かつファイルサイズが大きくなる傾向)をこの初期 S3 バケットへ送信し始めています。 報告チームは、ファイルが初期 S3 バケットへ到着した時点で、自動的に分析用 S3 バケットへ移動させたいと考えています。また、AWS Lambda 関数を活用して、コピーされたデータに対してパターンマッチング処理を実行したいです。さらに、データファイルを Amazon SageMaker Pipelines のパイプラインへ送信したいと考えています。 これらの要件を、最も少ない運用オーバーヘッドで満たすには、ソリューションアーキテクトは何を行うべきでしょうか?

正解: B. ファイルを分析用 S3 バケットへコピーする Lambda 関数を作成します。分析用 S3 バケットが Amazon EventBridge(Amazon CloudWatch Events)へイベント通知を送信するよう設定します。EventBridge(CloudWatch Events)に ObjectCreated ルールを設定し、Lambda および Amazon SageMaker Pipelines をそのルールのターゲットとして構成します。

解説

正解は B です。S3 レプリケーション(選択肢 C・D)は、単純なクロスリージョン/クロスアカウントのコピーには適していますが、レプリケーション完了後に追加の処理(例:Lambda によるパターンマッチングや SageMaker Pipelines への送信)をトリガーするためのネイティブなイベント通知機能は提供しておらず、またレプリケーションは非同期であり、タイミング制御が難しいため、要件に不向きです。一方、選択肢 A では、S3 イベント通知を分析用バケットに直接設定していますが、S3 イベント通知は「自身のバケット内のオブジェクト作成」に対してのみ発火し、レプリケーションや外部からのコピーによって作成されたオブジェクトに対しても通知されますが、これは意図しない重複トリガーの原因となり得ます(特に、Lambda がコピーを実行した直後にそのコピーイベントが再び Lambda を呼び出す可能性があります)。選択肢 B では、まず Lambda が初期バケットのイベント(s3:ObjectCreated:*)を受けて分析用バケットへコピーし、その後、分析用バケットのイベントを EventBridge 経由で確実にキャプチャして、Lambda(パターンマッチング)と SageMaker Pipelines を連携させる設計となっており、イベントのフローが明確で、重複実行や競合を回避でき、かつ管理対象リソースが最小限(Lambda ×1、EventBridge ルール ×1)であるため、運用オーバーヘッドが最も小さくなります。