How to handle surge in users using a Multi-AZ deployment?

0

A gaming company created a game leaderboard by using a Multi-AZ deployment of an Amazon RDS database. The number of users is growing, and the queries to get individual player rankings are getting slower over time. The company expects a surge in users for an upcoming version and wants to optimize the design for scalability and performance. Which solution will meet these requirements?

A. Migrate the database to Amazon DynamoDB. Store the leader different tables. Use Apache HiveQL JOIN statements to build the leaderboard

B. Keep the leaderboard data in the RDS DB instance. Provision a Multi-AZ deployment of an Amazon ElastiCache for Redis cluster. (Most Voted)

C. Stream the leaderboard data by using Amazon Kinesis Data Firehose with an Amazon S3 bucket as the destination. Query the S3 bucket by using Amazon Athena for the leaderboard.

D. Add a read-only replica to the RDS DB instance. Add an RDS Proxy database proxy.

2 Answers
1

A. Is not good, although DynamoDB can be used at scale and can be modeled to handler leaderboard data, the solution uses HiveQL to create the leaderboard which is not idea.

B. This works because Redis is extremely good and popular with leaderboards and it also doesn't require you to migrate or refactor for another database. https://aws.amazon.com/blogs/database/building-a-real-time-gaming-leaderboard-with-amazon-elasticache-for-redis/

C. This would work, but likely not the solution you want from a performance perspective.

D. You just double the problem

profile pictureAWS
EXPERT
answered 10 months ago
0

Hi, probably all options that you mention are possible. But, the simplest and most efficient is DynamoDb: it's an AWS managed service (i.e. patching, provisioning, HA, autoscaling, etc.) is managed by DDB with no work from customer side.

Additionally, DDB is known to work at very high scale: 105+ millions requests per second.

Finally, some high-scale leaderboard example on DDB exist: https://aws.amazon.com/blogs/apn/how-to-build-a-real-time-gaming-leaderboard-with-amazon-dynamodb-and-rockset/

Best, Didier

profile pictureAWS
EXPERT
answered 10 months ago
profile picture
EXPERT
reviewed 10 months ago
  • Thanks for sharing your insights. However, B is the most voted answer.

  • I’m not sure why you keep posting exam questions to aws:repost?

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions