Q71 — AWS SAP-C02 第1章
第 71/75 問 | ← 第1章
Q146. ある企業のインタラクティブなWebアプリケーションでは、Amazon CloudFrontディストリビューションを用いて、Amazon S3バケットから画像を配信しています。時折、サードパーティ製ツールが破損した画像をS3バケットに取り込み、その後アプリケーションでユーザー体験が悪化しています。この企業は、破損画像を検出するPythonロジックを正常に実装・テスト済みです。 ソリューションアーキテクトは、画像の取り込み(ingestion)と配信(serving)の間の遅延を最小限に抑えつつ、この検出ロジックを統合するソリューションを推奨する必要があります。 これらの要件を満たすソリューションはどれですか?
- A. Viewer-responseイベントによって起動されるLambda@Edge関数を使用する
- B. Origin-responseイベントによって起動されるLambda@Edge関数を使用する
- C. Amazon S3のイベント通知を用いてAWS Lambda関数を起動する ✓
- D. Amazon S3のイベント通知を用いてAWS Step Functionsステートマシンを起動する
正解: C. Amazon S3のイベント通知を用いてAWS Lambda関数を起動する
解説
取り込みと配信の間の遅延を最小限に抑える要件を満たすソリューションは、選択肢C(Amazon S3のイベント通知を用いてAWS Lambda関数を起動する)です。 サードパーティ製ツールが破損した画像をS3バケットに取り込むと、S3のイベント通知によりLambda関数が即座に起動されます。このLambda関数は、Pythonによる破損画像検出ロジックを実行し、画像が破損していると判定された場合、CloudFrontによる配信前にS3バケットから当該画像を削除できます。 このアプローチでは、S3におけるオブジェクト作成(取り込み)イベント発生直後にLambda関数が起動されるため、検出処理の遅延が最小限に抑えられます。選択肢Aは不適切です。Viewer-responseイベントは、CloudFrontがリクエストを処理してビューへレスポンスを返した後に発生するため、検出タイミングが遅れ、すでに破損画像が配信されてしまう可能性があります。選択肢Bも不適切です。Origin-responseイベントは、CloudFrontがオリジン(S3)からレスポンスを受信した後に発生するため、同様に遅延が発生し、破損画像の配信を防げない場合があります。選択肢Dは不要です。本シナリオでは、S3とLambdaのみを用いたシンプルなアーキテクチャで十分に解決可能であり、Step Functionsを導入する複雑さやオーバーヘッドは必要ありません。