A company is designing a new cloud-native application that requires a relational database. The database must support high availability across multiple Availability Zones with a Recovery Point Objective (RPO) of . The application will generate sudden, unpredictable bursts of complex read queries, scaling from queries per second to over queries per second, which could saturate the database CPU. The solutions architect needs to design the database tier to handle these scaling spikes without affecting write performance or availability. Which database design meets these requirements?
- AUse Amazon RDS for PostgreSQL in a Multi-AZ deployment. Configure the application to route read queries to the standby DB instance in the secondary Availability Zone during high-traffic events to offload the primary DB instance.
- BUse Amazon RDS for PostgreSQL in a Multi-AZ deployment. Configure Amazon RDS Proxy to dynamically scale the standby DB instance vertically to a larger instance class during query spikes.
- Use Amazon Aurora PostgreSQL. Configure Aurora Auto Scaling to dynamically adjust the number of Aurora Replicas based on target CPU utilization, and configure the application to use the reader endpoint for read queries.Answer
- DUse Amazon RDS for PostgreSQL with Read Replicas. Configure the application to route all database traffic to the primary DB instance, relying on the Multi-AZ standby instance to automatically intercept and process read queries when the primary DB instance's CPU utilization exceeds .
Answer
Use Amazon Aurora PostgreSQL with Aurora Auto Scaling to scale Aurora Replicas dynamically and route read queries to the reader endpoint.
The correct design uses Amazon Aurora PostgreSQL with Aurora Replicas and Aurora Auto Scaling. In Aurora, the storage volume is shared and replicated synchronously across three Availability Zones, ensuring an RPO of . Aurora Replicas share the same storage volume as the primary writer and can be scaled dynamically using Auto Scaling policies based on CPU utilization. Routing read queries to the reader endpoint load-balances the queries across the replicas, preventing CPU saturation on the primary instance.
Step-by-Step Solution
Key Concept
Scaling read-heavy database workloads using Amazon Aurora Replicas and Aurora Auto Scaling