Question

Difficulty: MediumHigh-Performing Database Solutions

A healthcare scheduling application stores doctor availability and booking details in an Amazon RDS for MySQL Multi-AZ DB instance. During peak morning hours, the system experiences a massive spike in read traffic from patients searching for open appointments, which drives the database's CPU utilization to 100% and causes query timeout errors. Write requests for booking appointments are low but require strict data consistency. Which two actions should a solutions architect take to resolve the database performance degradation?

  1. Deploy Amazon RDS Read Replicas and configure the application to direct read-only queries to the read replica endpoints.Answer
  2. Create an Amazon ElastiCache for Redis cluster to cache frequently queried doctor availability schedules.Answer
  3. C
    Configure the application to route read-only queries directly to the endpoint of the standby DB instance in the Multi-AZ deployment.
  4. D
    Migrate the booking table to Amazon DynamoDB using a partition key with monotonically increasing sequential IDs.

Answer

Deploy Amazon RDS Read Replicas to offload read-only traffic, and create an Amazon ElastiCache for Redis cluster to cache doctor availability schedules.
Deploying read replicas offloads read traffic from the primary database, while caching frequently read database queries using an ElastiCache Redis cluster reduces the total number of reads hitting the database entirely.

Step-by-Step Solution

1
Analyze database traffic characteristics
Identify that the bottleneck is caused by a high volume of read queries searching for availability, while write operations remain low.
This determines that scaling read capacity and implementing caching are the most effective performance optimization strategies.
2
Identify read-scaling options in RDS
Select Amazon RDS Read Replicas to handle read-only queries, rather than relying on the standby Multi-AZ instance which cannot serve reads.
Read replicas are designed specifically to scale read performance dynamically.
3
Implement a caching layer
Introduce Amazon ElastiCache for Redis to store search results for frequently queried availability schedules.
Caching avoids hitting the database altogether for repetitive queries, achieving sub-millisecond latency.

Key Concept

Scaling read capacity using RDS Read Replicas and offloading database queries via ElastiCache caching.
Rate this question