Q28 — AWS SAA-C03 第2章
第 28/65 問 | ← 第2章
Q93. アプリケーション開発チームが、大規模な画像を小さな圧縮画像に変換するマイクロサービスを設計しています。ユーザーがWebインターフェイスを通じて画像をアップロードすると、このマイクロサービスはその画像をAmazon S3バケットに保存し、AWS Lambda関数で画像を処理・圧縮した後、圧縮済みの画像を別のS3バケットに保存する必要があります。ソリューションアーキテクトは、耐久性があり、ステートレスなコンポーネントを用いて画像を自動的に処理するソリューションを設計する必要があります。これらの要件を満たすアクションの組み合わせはどれですか?(2つ選択)
- A. Amazon Simple Queue Service (Amazon SQS) キューを作成します。S3バケットを設定して、画像がS3バケットにアップロードされたときにSQSキューへ通知を送信するようにします。 ✓
- B. Lambda関数を、Amazon Simple Queue Service (Amazon SQS) キューを呼び出し元として設定します。SQSメッセージが正常に処理された後、キュー内の該当メッセージを削除します。 ✓
- C. Lambda関数を設定して、S3バケットの新規アップロードを監視するようにします。アップロードされた画像が検出された場合、ファイル名をメモリ上のテキストファイルに書き込み、そのテキストファイルを使って既に処理済みの画像を追跡します。
- D. Amazon EC2インスタンスを起動し、Amazon Simple Queue Service (Amazon SQS) キューを監視するように設定します。キューにアイテムが追加されると、EC2インスタンス上のテキストファイルにファイル名をログ記録し、Lambda関数を呼び出します。
- E. Amazon EventBridge (Amazon CloudWatch Events) のイベントを設定して、S3バケットを監視します。画像がアップロードされた際に、アプリケーション管理者のメールアドレス宛てにAmazon Simple Notification Service (Amazon SNS) トピック経由でアラートを送信し、その後の処理を行います。
正解: A. Amazon Simple Queue Service (Amazon SQS) キューを作成します。S3バケットを設定して、画像がS3バケットにアップロードされたときにSQSキューへ通知を送信するようにします。, B. Lambda関数を、Amazon Simple Queue Service (Amazon SQS) キューを呼び出し元として設定します。SQSメッセージが正常に処理された後、キュー内の該当メッセージを削除します。
解説
要件は「耐久性があり、ステートレスなコンポーネント」による自動処理です。S3イベント通知は直接Lambdaを呼び出せますが、大量の画像処理や一時的なLambdaのスロットリング・タイムアウトに対応するため、SQSを中間キューとして利用することで、処理の耐久性(再試行・デッドレターキュー対応)とステートレス性を確保できます(AとB)。CはLambdaが状態(メモリ上のテキストファイル)を保持するためステートフルであり、またLambdaの実行時間制限や再起動時にデータが失われるため不適切です。DはEC2インスタンスがステートフルかつ可用性・スケーラビリティに劣り、要件に反します。EはSNS通知を人手による後続処理に依存しており、自動処理を満たさず、またSNSはイベント配信の保証が「最大1回」であるため、処理の耐久性が不足します。