Question

Difficulty: MediumHigh-Performing Database Solutions

A company has a legacy web application running on Amazon EC2 instances with a MySQL database hosted on a single Amazon RDS DB instance. The database is experiencing performance degradation due to a high volume of read queries. The application requires high availability, and the database must support automatic failover in the event of an outage.

Which solution should a solutions architect implement to resolve the read bottleneck while meeting the high availability requirements?

  1. A
    Enable Multi-AZ deployment on the RDS MySQL DB instance. Configure the application to route read traffic to the standby DB instance and write traffic to the primary DB instance.
  2. B
    Create an Amazon RDS MySQL Read Replica. Configure the application to route write queries to the primary DB instance and read queries to the Read Replica. Configure the Read Replica to act as the automatic failover target in the event of an outage.
  3. Migrate the database to an Amazon Aurora MySQL DB cluster with a primary instance and at least one Aurora Replica. Configure the application to route read queries to the reader endpoint and write queries to the cluster endpoint.Answer
  4. D
    Migrate the relational database to an Amazon DynamoDB table. Use the current date as the partition key, and route all application read and write queries to the table.

Answer

Migrating the database to an Amazon Aurora MySQL DB cluster, configuring Aurora Replicas, and using the reader and cluster endpoints is the correct solution.
Amazon Aurora MySQL DB clusters separate the primary write instance from the reader instances (replicas). The cluster endpoint handles write traffic, while the reader endpoint load-balances read traffic across the replica nodes. If the primary instance fails, Aurora automatically promotes one of the replicas to the primary role with minimal disruption, meeting both high-performance read and high-availability requirements.

Step-by-Step Solution

1
Analyze the requirements for scaling database reads and providing automatic failover.
The solution must support both read scale-out (high performance) and automatic, zero-downtime database failover (high availability).
This establishes the criteria to evaluate relational database designs on AWS.
2
Evaluate the capabilities of Amazon RDS Multi-AZ and Read Replicas.
RDS Multi-AZ standby instances cannot be read from, while RDS Read Replicas do not support automatic failover.
This eliminates options that confuse RDS standby instances with read targets or read replicas with automatic failover targets.
3
Evaluate Amazon Aurora capabilities for read scaling and failover.
Amazon Aurora MySQL DB clusters support up to 15 replicas that serve dual roles: scaling read capacity via the reader endpoint and acting as automatic failover targets.
This confirms that Aurora meets both the performance (read scaling) and resilience (automatic failover) goals.

Key Concept

Scaling relational database read performance using Aurora reader endpoints and replicas while maintaining high availability.
Rate this question