Question #1012
A company is migrating their Redis-based application to AWS and requires a highly available solution that supports automatic failover, data persistence, and Multi-AZ redundancy. The solution must minimize operational overhead and ensure compatibility with existing Redis client libraries. Which configuration should they implement?
Deploy Amazon ElastiCache for Redis with Multi-AZ enabled and automatic backups. Use the primary endpoint for writes and read replicas for reads.
Create an Amazon RDS for PostgreSQL database with read replicas. Configure writes to the writer endpoint and reads to the reader endpoint.
Create an Amazon MemoryDB for Redis cluster in Multi-AZ mode. Configure the application to interact with the cluster endpoints.
Set up Redis on Amazon EC2 instances distributed across multiple Availability Zones. Implement custom failover scripts and daily backups to Amazon S3.
Explanation
Answer C is correct because Amazon MemoryDB for Redis provides built-in Multi-AZ redundancy, automatic failover, and data persistence through its durable transaction log, ensuring high availability and compatibility with Redis client libraries. It is a fully managed service, minimizing operational overhead.
Why other options are incorrect:
- A: ElastiCache for Redis requires manual configuration for data persistence (snapshots) and may not guarantee the same durability as MemoryDB.
- B: RDS for PostgreSQL is incompatible with Redis client libraries.
- D: EC2-based Redis requires manual setup for failover, backups, and Multi-AZ, increasing operational complexity.
Key Points:
1. MemoryDB ensures Redis compatibility and high durability.
2. Multi-AZ and automatic failover are native features of MemoryDB.
3. Managed services reduce operational effort compared to self-hosted solutions.
Answer
The correct answer is: C