Question

Difficulty: MediumImproving Database and Caching Efficiency

A gaming company hosts a multiplayer online game where active game lobby states, player statistics, and match queues are stored in an Amazon RDS for PostgreSQL DB instance. During peak hours, the database experiences CPU exhaustion and high read latencies due to a massive volume of read queries retrieving game lobby lists and player leaderboard data. To resolve this performance bottleneck, a solutions architect needs to introduce a caching layer. The caching solution must support automatic failover across multiple Availability Zones to ensure high availability, persist cache data to survive node restarts, and support complex data types like sorted sets to efficiently manage the leaderboards. Which architecture should the solutions architect implement to meet these requirements with the least operational overhead?

  1. Deploy an Amazon ElastiCache for Redis cluster with Multi-AZ and automatic failover enabled, and configure the application to read from the cache.Answer
  2. B
    Deploy an Amazon ElastiCache for Memcached cluster with nodes distributed across multiple Availability Zones, and configure the application to read from the cache.
  3. C
    Configure the application to route the read-heavy lobby and leaderboard queries to the standby instance of the RDS PostgreSQL Multi-AZ DB deployment.
  4. D
    Deploy a single-node Amazon ElastiCache for Redis instance, and configure a secondary cold standby instance in another Availability Zone that is restored daily from backup snapshots.

Answer

Deploy an Amazon ElastiCache for Redis cluster with Multi-AZ and automatic failover enabled, and configure the application to read from the cache.
Deploying an Amazon ElastiCache for Redis cluster with Multi-AZ and automatic failover enabled meets all requirements. Redis natively supports sorted sets (zsets) to rank player performance, data persistence to disk to survive restarts, and Multi-AZ replication to ensure high availability with automated failover.

Step-by-Step Solution

1
Analyze the technical requirements of the caching layer.
The requirements dictate support for Multi-AZ automatic failover, data persistence to survive node restarts, and advanced data structures (sorted sets) for leaderboard data.
This establishes the evaluation criteria for comparing AWS database and caching options.
2
Evaluate Amazon ElastiCache engines against the requirements.
ElastiCache for Redis supports replication, Multi-AZ automatic failover, persistence, and complex data structures. ElastiCache for Memcached only supports simple key-value pairs without replication or persistence.
This eliminates Memcached as a viable solution.
3
Evaluate RDS Multi-AZ standby features.
RDS standby instances in a Multi-AZ deployment are passive and cannot serve read traffic.
This eliminates options attempting to route queries to the standby instance.
4
Assess the high availability configuration options for Redis.
An ElastiCache for Redis replication group with Multi-AZ and automatic failover enabled meets the high availability and performance targets with the lowest operational overhead.
This ensures automated failover without manual snapshot restoration processes.

Key Concept

Selecting the appropriate ElastiCache engine and configuration based on requirements for replication, persistence, and data structure support.
Rate this question