AWS Certified Solutions Architect - Associate / Question #1883 of 1019

Question #1883

A company operates its application using an Amazon Aurora DB cluster. During periods of high traffic, when numerous users are performing read operations, the database experiences slower write query performance. The company aims to enhance scalability cost-effectively to handle peak loads without affecting write operations.

A

Create a second Aurora DB cluster. Replicate data to the new cluster using AWS DMS. Update the application to direct read queries to the new cluster and writes to the original cluster.

B

Deploy an Amazon ElastiCache cluster in front of the Aurora DB cluster. Configure the application to use ElastiCache for read queries and direct write operations to the Aurora cluster.

C

Add an Aurora read replica to the existing cluster. Configure the application to route read queries to the read replica endpoint and write operations to the primary cluster endpoint.

D

Migrate the database to an Amazon Neptune cluster. Update the application to use Neptune for read queries and retain Aurora for write operations.

Explanation

Answer C is correct because Aurora read replicas are designed to handle read-heavy workloads by distributing read queries away from the primary instance. This reduces contention on the primary node, allowing write operations to perform optimally during high traffic. Aurora manages replication seamlessly, ensuring data consistency without manual intervention.

Option A is incorrect because creating a second Aurora cluster with AWS DMS introduces complexity, latency, and additional costs. Option B (ElastiCache) is suboptimal because caching only works for repetitive reads and requires cache invalidation logic. Option D is unsuitable because Neptune is a graph database service, which is irrelevant to relational workloads and would require significant architectural changes.

Key points: Aurora read replicas scale reads cost-effectively; write operations remain on the primary endpoint; other options involve unnecessary overhead or incorrect database types.

Answer

The correct answer is: C