Q51 — AWS SAA-C03 第10章
第 51/100 問 | ← 第10章
Q651. ある企業が、スコア更新をバックエンドプロセッサにストリーミングし、その後リーダーボードに結果を掲載するモバイルゲームを開発しています。ソリューションアーキテクトは、大規模なトラフィックの急増に対応でき、モバイルゲームからの更新を受信順に処理でき、処理済みの更新を高可用性データベースに保存できるソリューションを設計する必要があります。また、このソリューションの運用管理負荷を最小限に抑えることも求められています。これらの要件を満たすために、ソリューションアーキテクトは何を行うべきでしょうか?
- A. スコア更新を Amazon Kinesis Data Streams にプッシュします。Kinesis Data Streams 上で AWS Lambda を使用して更新を処理します。処理済みの更新を Amazon DynamoDB に保存します。 ✓
- B. スコア更新を Amazon Kinesis Data Streams にプッシュします。Auto Scaling により構成された Amazon EC2 インスタンスのフリートを使用して更新を処理します。処理済みの更新を Amazon Redshift に保存します。
- C. スコア更新を Amazon Simple Notification Service (Amazon SNS) トピックにプッシュします。SNS トピックに AWS Lambda 関数をサブスクライブして更新を処理します。処理済みの更新を Amazon EC2 上で実行される SQL データベースに保存します。
- D. スコア更新を Amazon Simple Queue Service (Amazon SQS) キューにプッシュします。Auto Scaling を活用した Amazon EC2 インスタンスのフリートを使用して SQS キュー内の更新を処理します。処理済みの更新を Amazon RDS Multi-AZ DB インスタンスに保存します。
正解: A. スコア更新を Amazon Kinesis Data Streams にプッシュします。Kinesis Data Streams 上で AWS Lambda を使用して更新を処理します。処理済みの更新を Amazon DynamoDB に保存します。
解説
大規模なトラフィックの急増への対応、モバイルゲーム更新の受信順処理、処理済み更新の高可用性データベースへの保存、および運用管理負荷の最小化という要件を満たすソリューションとして最も適しているのは、選択肢 A です。理由は以下の通りです。選択肢 A:スコア更新を Amazon Kinesis Data Streams にプッシュし、AWS Lambda で処理し、Amazon DynamoDB に保存する。Amazon Kinesis Data Streams は、スケーラブルかつ耐久性の高いリアルタイムストリーミングサービスであり、大規模なトラフィックの急増への対応と、更新の受信順処理を保証できます。AWS Lambda を使用すれば、Kinesis Data Streams に到着した更新を即座に処理でき、自動スケーリングとフルマネージド環境により、運用管理負荷を最小限に抑えられます。さらに、処理済みの更新は、高可用性・高スケーラビリティ・低管理負荷を特徴とする NoSQL データベース Amazon DynamoDB に保存できます。選択肢 B:EC2 インスタンスのフリートによる処理は、Auto Scaling によりスケーラビリティは確保されますが、Lambda と比較して運用管理負荷が高くなります。また、Amazon Redshift は分析ワークロード向けのデータウェアハウスであり、個々のゲーム更新の保存には不適切です。選択肢 C:Amazon SNS はパブサブ型メッセージングサービスであり、リアルタイム更新の順序保証や処理には向いておらず、Lambda のサブスクライブも不要な複雑さを追加します。さらに、EC2 上で動作する SQL データベースは管理負荷が高く、DynamoDB のようなマネージドかつスケーラブルな代替手段よりも劣ります。選択肢 D:Amazon SQS はキューイングには有効ですが、EC2 フリートによる処理は依然として管理負荷を伴います。Amazon RDS はマネージドなリレーショナルデータベースですが、個々のゲーム更新の保存には、スケーラビリティと管理容易性の点で DynamoDB の方が適しています。したがって、すべての要件を満たし、管理負荷を最小限に抑える最適なソリューションは、選択肢 A(スコア更新を Amazon Kinesis Data Streams にプッシュし、AWS Lambda で処理し、Amazon DynamoDB に保存)です。この構成は、Kinesis Data Streams と Lambda のスケーラビリティおよびリアルタイム処理能力を活かし、DynamoDB によって高可用性かつマネージドな NoSQL データベースを提供します。