Q100 — AWS SAA-C03 第4章
第 100/105 問 | ← 第4章
Q295. ある会社では、支払い処理システムを使用しており、特定の支払いIDに関連するメッセージは、送信された順序で受信される必要があります。そうでないと、支払いが誤って処理される可能性があります。この要件を満たすために、ソリューションアーキテクトが実施すべきアクションはどれですか?(2つ選択)
- A. メッセージをAmazon DynamoDBテーブルに書き込み、支払いIDをパーティションキーとして設定する
- B. メッセージをAmazon Kinesis Data Streamに書き込み、支払いIDをパーティションキーとして設定する ✓
- C. メッセージをAmazon ElastiCache for Memcachedクラスターに書き込み、支払いIDをキーとして設定する
- D. メッセージをAmazon Simple Queue Service(Amazon SQS)標準キューに書き込み、メッセージ属性に支払いIDを設定する
- E. メッセージをAmazon Simple Queue Service(Amazon SQS)FIFOキューに書き込み、メッセージグループIDに支払いIDを設定する ✓
正解: B. メッセージをAmazon Kinesis Data Streamに書き込み、支払いIDをパーティションキーとして設定する, E. メッセージをAmazon Simple Queue Service(Amazon SQS)FIFOキューに書き込み、メッセージグループIDに支払いIDを設定する
解説
メッセージの順序保証が必要な場合、Amazon SQS FIFOキューは、同一のメッセージグループID(ここでは支払いID)を持つメッセージを厳密なFIFO順序で配信することを保証します(オプションE)。また、Amazon Kinesis Data Streamも、同一のパーティションキー(支払いID)に送信されたレコードを、送信順序どおりに処理・配信する保証を提供します(オプションB)。一方、DynamoDBは書き込み順序を保証せず、Memcachedは永続性や順序保証を持たず、標準SQSキュー(D)はメッセージの順序保証を行いません。したがって、正解はBとEです。