Q13 — AWS SAA-C03 第9章
第 13/40 問 | ← 第9章
Q573. 電子商取引企業がAWSクラウド上でアプリケーションを実行しており、そのアプリケーションはオンプレミスの倉庫管理ソリューションと統合されています。同社はAmazon Simple Notification Service(Amazon SNS)を使用して注文メッセージをオンプレミスのHTTPSエンドポイントに送信し、倉庫アプリケーションが注文を処理できるようにしています。ローカルデータセンターのチームが、一部の注文メッセージが受信されていないことを検知しました。ソリューションアーキテクトは、配信されなかったメッセージを保持し、最大14日間分析できるようにする必要があります。これらの要件を満たすソリューションのうち、開発工数が最も少ないものはどれですか?
- A. Amazon SNSのデッドレターキューを、保持期間が14日のAmazon Kinesis Data Streamをターゲットとするように設定します。
- B. アプリケーションとAmazon SNSの間に、保持期間が14日のAmazon Simple Queue Service(Amazon SQS)キューを追加します。
- C. Amazon SNSのデッドレターキューを、保持期間が14日のAmazon Simple Queue Service(Amazon SQS)をターゲットとするように設定します。 ✓
- D. Amazon SNSのデッドレターキューを、TTL属性を14日の保持期間に設定したAmazon DynamoDBをターゲットとするように設定します。
正解: C. Amazon SNSのデッドレターキューを、保持期間が14日のAmazon Simple Queue Service(Amazon SQS)をターゲットとするように設定します。
解説
Amazon SNSでは、HTTP/Sトピックサブスクリプションに対する配信失敗を処理するために、デッドレターキュー(DLQ)を設定できます。DLQとしてAmazon SQSキューを指定することで、配信に失敗したメッセージを自動的に保存でき、SQSのメッセージ保持期間(最大14日間)を活用して、後続の分析が可能です。これはネイティブな統合であり、追加のコードやインフラ構成が最小限で済み、開発工数が最も少なくなります。選択肢AはKinesis Data Streamはストリーミング処理向けであり、単純なメッセージ保持・再試行・分析には過剰かつ複雑です。選択肢BはSNSとアプリケーションの間にSQSを挿入するものですが、SNSから直接HTTPSエンドポイントへ配信しているため、この配置はアーキテクチャ上不適切です(SNS→SQS→HTTPSはサポートされていません)。選択肢DのDynamoDBは、メッセージの保持・再試行というユースケースには不向きで、TTLによる自動削除は可能ですが、メッセージの再処理や監査ログとしての利用性が低く、SNSのDLQとして公式にサポートされていません。したがって、正解はCです。