Q52 — AWS SAA-C03 第1章
第 52/65 問 | ← 第1章
Q52. ある企業には、着信メッセージを受信するアプリケーションがあります。これらのメッセージはその後、数十の他のアプリケーションおよびマイクロサービスによって迅速に処理されます。メッセージ数は大きく変動し、1秒あたり最大10万件に達することもあります。この企業は、システムを疎結合化し、スケーラビリティを向上させたいと考えています。これらの要件を満たすソリューションはどれですか?
- A. メッセージをAmazon Kinesis Data Analyticsに永続化します。すべてのアプリケーションがこのデータからメッセージを読み取り、処理します。
- B. アプリケーションをAmazon EC2インスタンス上にデプロイし、CPUメトリクスに基づいてEC2インスタンス数を自動的にスケールさせるAuto Scalingグループを使用します。
- C. メッセージをシャード数1のAmazon Kinesis Data Streamsに書き込みます。すべてのアプリケーションがこのストリームからメッセージを読み取り、処理します。
- D. メッセージをAmazon Simple Notification Service (Amazon SNS) トピックに公開し、1つ以上のAmazon Simple Queue Service (Amazon SQS) サブスクリプションを設定します。その後、すべてのアプリケーションがキューからメッセージを処理します。 ✓
正解: D. メッセージをAmazon Simple Notification Service (Amazon SNS) トピックに公開し、1つ以上のAmazon Simple Queue Service (Amazon SQS) サブスクリプションを設定します。その後、すべてのアプリケーションがキューからメッセージを処理します。
解説
着信メッセージの受信および消費を疎結合化し、スケーラビリティを高めるという要件を満たす最適なソリューションは、選択肢Dです。つまり、「メッセージをAmazon Simple Notification Service (Amazon SNS) トピックに公開し、1つ以上のAmazon Simple Queue Service (Amazon SQS) サブスクリプションを設定し、すべてのアプリケーションがキューからメッセージを処理する」方法です。 このソリューションが最も適している理由は以下のとおりです。 1. Amazon SNS:SNSは、完全マネージド型のパブリッシュ/サブスクライブ(pub/sub)メッセージングサービスであり、メッセージの送信者(プロデューサー)と受信者(コンシューマー)を疎結合化できます。アプリケーションは、購読者を意識せずにトピックへメッセージを公開できます。 2. Amazon SQS:SQSは、信頼性・スケーラビリティに優れた完全マネージド型のメッセージキューイングサービスです。アプリケーションはSNSトピックをサブスクライブし、SQSキュー経由でメッセージを受信することで、複数のアプリケーションによる並列かつスケーラブルなメッセージ処理が可能になります。 このソリューションを採用することで、以下のようなメリットが得られます。 ・疎結合化:SNSにより、メッセージの送信者と受信者が分離され、受信アプリケーションの詳細を知らずにメッセージをトピックへ公開できます。これにより、メッセージ受信アプリケーションと消費アプリケーション間の柔軟性と疎結合性が実現されます。 ・スケーラビリティ:SNSおよびSQSは、高いメッセージスループットに対応でき、変動するメッセージ量に応じて自動的にスケールします。SNSはメッセージを複数のSQSキューへファンアウト(一斉配信)できるため、消費アプリケーションによる並列処理が可能となり、メッセージ量の急増にも対応できます。 ・信頼性:SQSは信頼性・耐久性の高いメッセージ保存を提供し、高トラフィック時やアプリケーション障害時でもメッセージの喪失を防ぎます。メッセージは、消費アプリケーションによって処理されるまでキュー内に保持されるため、確実な配信が保証されます。 選択肢Aでは、Amazon Kinesis Data Analyticsへの永続化が提案されていますが、Kinesis Data Analyticsはストリーミングデータに対するリアルタイム分析に特化しており、メッセージの送信者と受信者の疎結合化を主目的として設計されていません。 選択肢Bでは、CPUメトリクスに基づくAmazon EC2 Auto Scalingグループの利用が提案されていますが、これはスケーラビリティを提供しますが、疎結合化の要件には対応しておらず、SNS/SQSのようなパブサブ型メッセージングサービスほど柔軟性はありません。 選択肢Cでは、シャード数1のAmazon Kinesis Data Streamsへの書き込みが提案されていますが、Kinesis Data Streamsは高いメッセージスループットに対応できますが、SNSとSQSの組み合わせほど、疎結合性およびスケーラビリティを十分に実現できません。