Q5 — AWS SAA-C03 第8章

第 5/65 問 | ← 第8章

Q500. ソリューションアーキテクトが、ある企業向けにマルチティアアプリケーションを設計しています。このアプリケーションでは、ユーザーがモバイル端末から画像をアップロードします。アプリケーションは各画像のサムネイルを生成し、元の画像が正常にアップロードされたことをユーザーに通知するメッセージを返します。サムネイル生成には最大60秒かかる場合がありますが、企業はユーザーに対して、元の画像を受信したという通知をより迅速に提供したいと考えています。また、ソリューションアーキテクトは、異なるアプリケーションティア間でリクエストを非同期に処理できるようにアプリケーションを設計する必要があります。これらの要件を満たすために、ソリューションアーキテクトは何を行うべきでしょうか?

正解: C. Amazon Simple Queue Service (Amazon SQS) のメッセージキューを作成します。画像がアップロードされる際に、サムネイル生成用のメッセージをSQSキューに配置します。アプリケーション内のメッセージを通じて、ユーザーに画像受信完了を即座に通知します。

解説

要件の核心は「ユーザーへの即時応答(画像受信確認)」と「サムネイル生成の非同期実行」の両立です。選択肢Cでは、画像アップロード直後にSQSキューにサムネイル生成タスクを非同期で投入し、同時にユーザーに即時応答(「画像受信完了」メッセージ)を返すことができます。これは、処理の分離(decoupling)とレスポンス時間の最適化という2つの目標を最もシンプルかつ確実に達成します。選択肢Aは、Lambdaのタイムアウト(最大15分)で60秒の処理は可能ですが、ユーザーに「サムネイル生成完了」まで待たせるため即時応答が得られず、要件に反します。選択肢Bはオーケストレーションに優れますが、ユーザー通知タイミングを制御する柔軟性に乏しく、過剰な複雑さを導入します。選択肢DはSNSのファンアウト機能を活用していますが、SNS自体は非同期処理のキューイングではなく、配信保証や順序保証がなく、サムネイル生成の失敗時の再試行や監視が困難です。SQSは可視性タイムアウト・デッドレターキュー・再試行制御などの堅牢な非同期処理機能を備えており、本ユースケースに最も適しています。