DVA-C02:AWS Certified Developer - Associate AWS サービスを用いた開発 問12
AWS サービスを用いた開発/AWS でホストされるアプリのコード開発1 件の注文イベントを、通知・在庫・分析という複数の独立したサブスクライバーへ同時に配信(ファンアウト)したい。各サブスクライバーは自分のペースで処理したい。最も適した構成はどれか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「AWS サービスを用いた開発」に対応。実際の試験問題ではありません)
- AAmazon SNS トピックに発行し、複数の Amazon SQS キュー(各サブスクライバー用)をサブスクライブさせる(ファンアウト)
- B1 本の SQS キューを全サブスクライバーで共有し、各自が取り合う
- C各サブスクライバーを同期的に順番に呼び出す
- DDynamoDB テーブルに書き込み、各自がポーリングする
正解:A
解説
SNS トピックにメッセージを発行し、サブスクライバーごとに SQS キューをサブスクライブさせる「ファンアウト」構成にすると、1 件のイベントを複数の独立したサブスクライバーへ同時に配信し、各自が自分のペースでキューから処理できます。1本のキュー共有・同期順次呼び出し・DynamoDBポーリングは、この要件に適しません。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A正しい。1イベントを複数へ同時配信するファンアウトはSNS+複数SQSです。
- B誤り。1本のキューの共有では各メッセージは1コンシューマーしか受け取れず、同時配信になりません。
- C誤り。同期の順次呼び出しは疎結合・各自のペースの要件に反します。
- D誤り。DynamoDBポーリングはイベント配信の最適な手段ではありません。