Q45 — AWS SAA-C03 第6章
第 45/65 問 | ← 第6章
Q410. ある企業が、着信メッセージを受信するアプリケーションを保有しています。その後、数十の他のアプリケーションおよびマイクロサービスがこれらのメッセージを迅速に消費します。メッセージ数は大きく変動し、場合によっては1秒あたり10万件に急増することもあります。同社はこのソリューションを疎結合化し、スケーラビリティを向上させたいと考えています。これらの要件を満たすソリューションはどれですか?
- A. メッセージをAmazon Kinesis Data Analyticsに永続化し、コンシューマー向けアプリケーションがそれらを読み込んで処理するように設定します。
- B. 受信アプリケーションをAuto Scalingグループ内のAmazon EC2インスタンス上にデプロイし、CPUメトリクスに基づいてEC2インスタンス数をスケールさせます。
- C. メッセージをシングルシャードのAmazon Kinesis Data Streamsに書き込み、AWS Lambda関数でメッセージの前処理を行い、Amazon DynamoDBに保存します。コンシューマー向けアプリケーションがDynamoDBからメッセージを読み取り、処理するように設定します。
- D. メッセージをAmazon Simple Notification Service (Amazon SNS) トピックに公開し、複数のAmazon Simple Queue Service (Amazon SQS) サブスクリプションを関連付けます。コンシューマー向けアプリケーションがキューからメッセージを処理するように設定します。 ✓
正解: D. メッセージをAmazon Simple Notification Service (Amazon SNS) トピックに公開し、複数のAmazon Simple Queue Service (Amazon SQS) サブスクリプションを関連付けます。コンシューマー向けアプリケーションがキューからメッセージを処理するように設定します。
解説
正解はDです。Amazon SNSは、1つのメッセージを多数のサブスクライバー(ここでは複数のSQSキュー)に同時配信できるプッシュ型のパブリッシュ/サブスクライブサービスであり、送信側と受信側の完全な疎結合を実現します。また、各SQSキューは独立してスケーリング可能であり、急激なトラフィック増加(例:1秒あたり10万件)にも耐えられます。一方、AはKinesis Data Analyticsはストリームデータのリアルタイム分析に特化しており、メッセージの永続化や配信には不適切です。BはEC2ベースのスケーリングでは、急激な負荷変動への対応が遅く、疎結合化も達成できません。CはKinesis Data Streamsのシングルシャードでは最大で1,000件/秒の書き込みと2,000件/秒の読み出ししかサポートせず、10万件/秒という要件を満たせません(シャード数を増やす必要があります)。したがって、要件(疎結合・急激なスケール・高スループット)を最も適切に満たすのはDです。