Q51 — AWS SAA-C03 Ch.10

Question 51 of 100 | ← Chapter 10

Q651. A company is developing a mobile game that streams score updates to a backend processor and then posts results on a leaderboard. A solutions architect needs to design a solution that can handle large traffic spikes, process the mobile game updates in order of receipt, and store the processed updates in a highly available database. The company also wants to minimize the management overhead required to maintain the solution. What should the solutions architect do to meet these requirements?

Correct Answer: A. Push score updates to Amazon Kinesis Data Streams.Process the updates in Kinesis Data Streams with AWS Lambda.Store the processed updates in Amazon DynamoDB.

Explanation

To design a solution that can handle large traffic spikes, process mobile game updates in order of receipt, and store the processed updates in a highly available database while minimizing management overhead, the solution that would best fit these criteria is:A. Push score updates to Amazon Kinesis Data Streams. Process the updates in Kinesis Data Streams with AWS Lambda. Store the processed updates in Amazon DynamoDB.Here's the rationale behind this solution:Option A: Push score updates to Amazon Kinesis Data Streams. Process the updates in Kinesis Data Streams with AWS Lambda. Store the processed updates in Amazon DynamoDB. Amazon Kinesis Data Streams is a scalable and durable real-time streaming service. By pushing score updates to Kinesis Data Streams, you can handle large traffic spikes and ensure the updates are processed in order of receipt. AWS Lambda can be used to process the updates as they arrive in Kinesis Data Streams. Lambda provides automatic scaling and management, minimizing operational overhead. Finally, the processed updates can be stored in Amazon DynamoDB, a highly available NoSQL database that offers great scalability and low management overhead. Option B: Push score updates to Amazon Kinesis Data Streams. Process the updates with a fleet of Amazon EC2 instances set up for Auto Scaling. Store the processed updates in Amazon Redshift. Using a fleet of EC2 instances with Auto Scaling can handle large traffic spikes, but it introduces additional management overhead compared to using AWS Lambda. Amazon Redshift is a data warehousing solution and may not be the most suitable option for storing individual game updates. It is primarily designed for analytic queries on large datasets rather than storing real-time updates.Option C: Push score updates to an Amazon Simple Notification Service (Amazon SNS) topic. Subscribe an AWS Lambda function to the SNS topic to process the updates. Store the processed updates in a SQL database running on Amazon EC2.Amazon SNS is a pub/sub messaging service and may not be the best fit for processing and storing individual game updates. Subscribing an AWS Lambda function to the SNS topic adds unnecessary complexity. Using a SQL database running on EC2 introduces management overhead, while DynamoDB provides a more scalable and managed option.Option D: Push score updates to an Amazon Simple Queue Service (Amazon SQS) queue. Use a fleet of Amazon EC2 instances with Auto Scaling to process the updates in the SQS queue. Store the processed updates in an Amazon RDS Multi-AZ DB instance.While Amazon SQS can handle message queues, using a fleet of EC2 instances with Auto Scaling to process the updates adds management overhead. Amazon RDS is a managed relational database service, but DynamoDB would be a more appropriate choice for storing individual game updates due to its scalability and low management requirements.Therefore, the most suitable solution that meets the requirements and minimizes management overhead is to push score updates to Amazon Kinesis Data Streams, process the updates with AWS Lambda, and store the processed updates in Amazon DynamoDB (Option A). This solution leverages the scalability and real-time processing capabilities of Kinesis Data Streams and Lambda, while DynamoDB provides a highly available and managed NoSQL database for storing the processed updates.