A team's RDS for PostgreSQL primary instance is saturated by a growing volume of read-only reporting queries from a BI tool, and write latency on the primary is starting to suffer as a result. The team wants to offload the read-only reporting traffic to a separate, asynchronously updated copy of the database without changing the primary's high-availability configuration. Which RDS feature should they add?
- A Multi-AZ standby instance, since standby instances in a Multi-AZ deployment can directly serve read queries from a BI tool
- One or more RDS read replicas, which use asynchronous, engine-native replication and can be queried directly to offload read traffic from the primary
- A second Multi-AZ deployment in a different Availability Zone pointed at the same storage volume as the primary
- AWS Database Migration Service configured to continuously replicate the primary's tables into a new RDS instance for one-time reporting
Why B? And why not the others?
Correct answer: B. One or more RDS read replicas, which use asynchronous, engine-native replication and can be queried directly to offload read traffic from the primary
RDS read replicas are created from a snapshot of the source instance and kept current through the DB engine's own asynchronous replication, and applications can connect to them directly for read-only queries, which offloads reporting traffic without touching the primary's write path or its HA setup. The option describing a Multi-AZ standby is wrong because a standby instance exists purely for synchronous failover and cannot serve read traffic at all; it sits idle from an application's perspective until a failover promotes it. The option describing a second Multi-AZ deployment pointed at the same storage volume is wrong because Multi-AZ deployments don't share storage across separate deployments in this way, and stacking deployments doesn't create a queryable read target. The option describing AWS Database Migration Service is wrong because DMS is designed for migrating or continuously replicating data between different database instances or engines, not as an application-facing, ongoing read-scaling mechanism built into the source engine.
Source: AWS RDS documentation: Working with DB instance read replicas