Question #1033
A company operates a social media analytics platform using Amazon EC2 instances behind an Application Load Balancer, with instances in an Auto Scaling group across multiple Availability Zones. The Auto Scaling group scales based on network throughput. The platform stores user activity data in a PostgreSQL database hosted on a large EC2 instance. The database performance declines during peak traffic periods, which are primarily read-heavy. The company seeks a solution that automatically scales the database to handle unpredictable read traffic while ensuring high availability.
Use Amazon Redshift with a single node configuration.
Use Amazon RDS for PostgreSQL with a Single-AZ deployment and add Read Replicas manually.
Use Amazon Aurora PostgreSQL with Multi-AZ deployment and configure Aurora Auto Scaling with Aurora Replicas.
Use Amazon ElastiCache for Redis with on-demand instances.
Explanation
Option C is correct because:
- Amazon Aurora PostgreSQL is fully compatible with PostgreSQL and designed for high performance and scalability.
- Multi-AZ deployment ensures high availability by maintaining a primary instance and a standby replica in a different Availability Zone.
- Aurora Auto Scaling dynamically adjusts the number of Aurora Replicas based on workload, automatically scaling read operations during peak traffic.
Other options are incorrect because:
- A (Redshift): Redshift is a data warehouse for analytics, not optimized for OLTP workloads. A single node lacks high availability and read scaling.
- B (RDS Single-AZ): Single-AZ deployments lack high availability, and manual Read Replicas do not provide automatic scaling.
- D (ElastiCache): ElastiCache is a caching layer, not a primary database solution. It does not address the database's read scaling or high availability.
Key Points: Aurora Auto Scaling handles read-heavy traffic automatically, and Multi-AZ ensures high availability. Other options fail to meet both requirements.
Answer
The correct answer is: C