AWS Certified Solutions Architect - Professional / Question #973 of 529

Question #973

A public e-commerce platform uses an Application Load Balancer (ALB) distributing traffic across Amazon EC2 instances in multiple Availability Zones (AZs) within a Region. The backend uses an Amazon Aurora MySQL Multi-AZ cluster. Target group health checks are set to use HTTPS and directed at the checkout page. Auto Scaling is configured to maintain the instance count based on ALB health checks.

During a peak period, the application became unresponsive. Auto Scaling repeatedly terminated and launched instances. Post-analysis revealed that the EC2 instances had normal CPU and memory usage, but the database tier was overwhelmed with read queries, causing high latency.

Which two changes should be implemented together to address these issues and enhance monitoring for future scalability? (Choose two.)

A

Create read replicas for Amazon Aurora MySQL and direct read traffic to the writer endpoint in the web application to reduce load on the primary database instance.

B

Modify the target group health check to point to a static maintenance page and configure Amazon Route 53 health checks to monitor the checkout page for full application functionality. Implement Amazon CloudWatch alarms to alert administrators of failures.

C

Update the target group health check to use a TCP check on the EC2 instances and configure Amazon Route 53 health checks against the checkout page. Set up Amazon CloudWatch alarms to trigger notifications during downtime.

D

Create an Amazon CloudWatch alarm for Aurora MySQL with an action to reboot the database instance during periods of high load.

E

Deploy an Amazon ElastiCache cluster between the web application and Aurora MySQL to cache frequent read queries and alleviate database load.

Explanation

The issue arises from high database read load and improper health checks causing Auto Scaling instability.

Why B and E are correct:
- E: Deploying ElastiCache offloads read queries from Aurora MySQL, reducing latency and database pressure.
- B: Modifying the ALB health check to a static page ensures instances aren't terminated due to application-layer failures (e.g., database latency). Route 53 health checks monitor the checkout page, ensuring end-to-end functionality. CloudWatch alarms provide alerts for failures.

Why others are incorrect:
- A: Directing read traffic to the writer endpoint increases load on the primary instance instead of offloading to read replicas.
- C: TCP checks don’t validate application functionality, risking undetected checkout page failures.
- D: Rebooting the database during high load is disruptive and doesn’t address scalability.

Key Points:
1. Use caching (ElastiCache) to reduce database read load.
2. Configure health checks appropriately to avoid false negatives in Auto Scaling.
3. Monitor critical endpoints (e.g., checkout) separately for full visibility.

Answer

The correct answer is: BE