Question #925
A company operates a global hotel booking platform hosted on AWS. The application runs on two fixed Amazon EC2 instances and uses Amazon DynamoDB as its primary database. A self-hosted Memcached cluster is used for caching frequently accessed hotel availability data. The company uses Amazon Route 53 with a multivalue record (bookings.example.com) pointing to the EC2 instances' Elastic IP addresses. During peak travel seasons, the EC2 instances and caching layer experience extreme load, resulting in application downtime. A solutions architect must redesign the architecture to ensure high availability and handle seasonal traffic spikes effectively. Which solution meets these requirements?
Migrate to DynamoDB Accelerator (DAX) for caching. Update the application to use DAX. Create an Auto Scaling group for the EC2 instances. Deploy an Application Load Balancer (ALB) targeting the Auto Scaling group. Update the Route 53 record to use a simple routing policy pointing to the ALB's DNS. Configure scheduled scaling for EC2 instances before peak seasons.
Replace the Memcached cluster with Amazon ElastiCache for Redis. Update the application to use ElastiCache. Create an Auto Scaling group for the EC2 instances. Set up an Amazon CloudFront distribution with the Auto Scaling group as the origin. Update Route 53 to route traffic to the CloudFront DNS. Manually scale EC2 instances before peak seasons.
Replace the Memcached cluster with Amazon ElastiCache for Memcached. Update the application to use ElastiCache. Create an Auto Scaling group for the EC2 instances. Deploy an Application Load Balancer (ALB) targeting the Auto Scaling group. Update the Route 53 record to use a simple routing policy pointing to the ALB's DNS. Configure scheduled scaling for EC2 instances before peak seasons.
Migrate to DynamoDB Accelerator (DAX) for caching. Update the application to use DAX. Create an Auto Scaling group for the EC2 instances. Set up an Amazon CloudFront distribution with the Auto Scaling group as the origin. Update Route 53 to route traffic to the CloudFront DNS. Manually scale EC2 instances before peak seasons.
Explanation
Option C is correct because:
1. ElastiCache for Memcached: Replaces the self-hosted Memcached cluster with a managed service, ensuring scalability and high availability without major application changes.
2. Auto Scaling & ALB: Auto Scaling dynamically adjusts EC2 instances based on demand, while the ALB distributes traffic evenly, improving fault tolerance.
3. Route 53 with Simple Routing: Points to the ALB's DNS, ensuring traffic is routed efficiently.
4. Scheduled Scaling: Proactively scales EC2 instances before peak seasons.
Other options are incorrect because:
- A & D: DAX is specific to DynamoDB and may not replace Memcached caching logic, requiring significant code changes.
- B: ElastiCache for Redis may require application changes, and CloudFront is unnecessary for dynamic content. Manual scaling is less reliable than Auto Scaling.
Key Points:
- Use managed services (ElastiCache) for caching.
- Auto Scaling with ALB ensures EC2 scalability.
- Route 53 should route traffic to ALB, not individual EC2 instances.
Answer
The correct answer is: C