Skip to content
Explainer · AWS

AWS RDS Multi-AZ vs Read Replicas Explained

Multi-AZ and read replicas both create extra copies of an RDS database, but for different jobs. Multi-AZ keeps a synchronous standby for automatic failover; read replicas copy data asynchronously so you can spread read traffic or recover in another Region. A third option, the Multi-AZ DB cluster, does a bit of both. This guide compares the three and their cost.

Facts checked 8 October 2026 against the providers' official documentation and pricing pages. Next review due January 2027. Cloud services, regions and prices change often; confirm on the provider's site before you buy.
Short answer
  • RDS Multi-AZ (one standby) is for high availability: a synchronous standby in another Availability Zone takes over automatically, typically in 60 to 120 seconds, but it cannot serve reads.
  • Read replicas are for read scaling and disaster recovery: asynchronous, readable copies (up to 15 per primary) that you promote manually; they can lag behind the primary.
  • A Multi-AZ DB cluster (RDS for PostgreSQL and MySQL only) has a writer and two readable standbys in three AZs, with failover typically under 35 seconds.
  • Cost: a Multi-AZ instance is billed at the Multi-AZ rate (twice the Single-AZ rate for the classes we priced), and each read replica is billed as a full instance plus its own storage.
  • Production databases usually need Multi-AZ first; add read replicas when reads, reporting or cross-Region recovery require them.
How we know: Research-based: behaviour, limits and failover times were checked against the Amazon RDS User Guide, the RDS Multi-AZ and read replica feature pages and the Amazon RDS FAQs; prices come from the AWS price data behind the RDS pricing pages, all on 8 October 2026. Failover times are AWS's published typical figures; we have not run failover drills.

RDS Multi-AZ vs read replicas at a glance

The RDS User Guide is explicit that the high availability option is not a scaling solution for read-only scenarios: a Multi-AZ standby cannot serve read traffic. Read replicas, in turn, use asynchronous replication, so AWS recommends Multi-AZ, not replicas, when the goal is to protect recent writes. The table summarises the three options.

RDS Multi-AZ DB instance vs Multi-AZ DB cluster vs read replicas
Multi-AZ DB instance (one standby)Multi-AZ DB cluster (two readable standbys)Read replica
Main purposeHigh availabilityHigh availability plus read capacityRead scaling, reporting, disaster recovery
ReplicationSynchronousSemisynchronous (one reader must acknowledge)Asynchronous
Can serve readsNoYes, both readersYes
FailoverAutomatic, typically 60 to 120 secondsAutomatic, typically under 35 secondsManual promotion
LocationSecond AZ, same RegionThree AZs, same RegionSame AZ, other AZ or other Region
EnginesAll RDS enginesRDS for PostgreSQL and RDS for MySQLAll RDS engines (Db2 and Oracle with restrictions)
How manyOne standbyTwo readersUp to 15 per primary (default quota)

How RDS Multi-AZ works

In a Multi-AZ DB instance deployment, RDS provisions a synchronous standby replica in a different Availability Zone and keeps it in step with the primary. If the primary or its AZ fails, RDS switches automatically: the FAQs say it flips the DNS name (CNAME) of the instance to the standby, so the application reconnects to the same endpoint. You can convert an existing Single-AZ instance by modifying it; AWS describes this as a snapshot, a new standby built from it, then synchronous replication, with no downtime expected but possible extra latency while the standby catches up.

Trade-offs: synchronous replication can increase write and commit latency compared with Single-AZ, and AWS recommends Provisioned IOPS for production Multi-AZ workloads. In return, backups are taken from the standby, so for MariaDB, MySQL, Oracle and PostgreSQL the primary's I/O is not suspended during backups. Multi-AZ does not fail over for database-level problems: the FAQs note it does not react to long-running queries, deadlocks or database corruption errors.

Multi-AZ DB cluster: the two-readable-standby option

A Multi-AZ DB cluster has one writer and two reader DB instances in three Availability Zones. Replication is semisynchronous: a commit needs acknowledgement from at least one reader. Both readers serve read traffic and act as failover targets, and AWS says these clusters typically have lower write latency than Multi-AZ DB instance deployments. They are available for RDS for PostgreSQL and RDS for MySQL on a specific set of instance classes with local storage (for example db.m6gd, db.r6gd and db.m8gd). They are not the same as Aurora DB clusters.

How RDS read replicas work

When you create a read replica, RDS takes a snapshot of the source, builds a read-only instance from it, then uses the engine's native asynchronous replication to keep it updated. Applications connect to a replica like any other instance, using its own endpoint. Automated backups must be enabled on the source first. Key documented points:

  • Count. The default quota is 15 read replicas per primary. For RDS for Oracle, AWS recommends limiting replicas to 5 to minimise lag.
  • No autoscaling. You add and delete replicas yourself; RDS does not change their number with demand.
  • Cross-Region. All engines except RDS for SQL Server support replicas in another Region, with lag that depends on network latency between Regions.
  • Promotion. You can promote a replica to a standalone instance, for example after losing the primary; RDS reboots it first and promotion can take several minutes or longer.
  • Combining. A primary can be Multi-AZ and have read replicas, and replicas for MySQL, MariaDB, PostgreSQL and Oracle can themselves be Multi-AZ.

Failover timing and what your application must do

AWS gives these typical figures: 60 to 120 seconds for a Multi-AZ DB instance failover, and under 35 seconds for a Multi-AZ DB cluster. Large transactions or a long recovery can make a failover take longer. With read replicas there is no automatic failover; recovery time is however long it takes you to promote a replica and redirect traffic, and any writes not yet replicated are lost.

Because the endpoint's DNS record changes during failover, existing connections drop and must be re-established. AWS recommends connection retry logic in the application and, for Java, a DNS cache TTL of no more than 60 seconds. RDS Proxy avoids the DNS step; AWS says it can reduce failover time for Multi-AZ DB instances by up to 66%. You can trigger a failover deliberately by rebooting with failover, which is the documented way to rehearse it.

Cost impact: RDS Multi-AZ pricing and read replica pricing

Multi-AZ is billed at Multi-AZ instance and storage rates, which for the classes and storage priced below are exactly twice the Single-AZ rates. AWS does not charge for replication traffic between the primary and standby, and backup storage is billed the same as Single-AZ. A read replica is billed as a standard DB instance at its own class rate, plus its own storage; replication within a Region is free, while cross-Region replication incurs data transfer charges. Reserved Instances can cover both: a Multi-AZ reservation can cover two Single-AZ instances where size flexibility applies, and a reservation applies to a read replica of the same class and Region.

For the full breakdown of an RDS bill, see AWS RDS pricing.

Which should you choose?

  • Single-AZ only: development, test and workloads that can tolerate a restore from backup.
  • Multi-AZ DB instance: the default for production when the main risk is losing the instance or an AZ, and reads fit on one instance.
  • Multi-AZ DB cluster: PostgreSQL or MySQL production workloads that want faster failover and some read capacity from the same deployment.
  • Add read replicas: when read traffic or reporting queries outgrow the primary, or you need a warm copy in another Region for disaster recovery.

If you need more read replicas, storage that grows automatically, or faster cross-AZ recovery than RDS offers, compare Amazon RDS with Amazon Aurora.

Pricing

Prices from the provider's official pricing pages, checked 8 October 2026, region US East (N. Virginia), in USD, excluding tax. List prices only; discounts, commitments and your actual usage change the bill.

RDS for PostgreSQL On-Demand rates from AWS's price data. db.m8g.large: 0.168 USD per hour Single-AZ and 0.336 USD per hour Multi-AZ (one standby). db.m6gd.large, a class that also supports Multi-AZ DB clusters: 0.187 USD per hour Single-AZ, 0.373 USD per hour Multi-AZ (one standby) and 0.522 USD per hour listed for the Multi-AZ (two readable standbys) deployment option. gp3 storage: 0.115 USD per GB-month Single-AZ and 0.23 USD per GB-month Multi-AZ.

Example: the same database three ways (db.m8g.large, 100 GB gp3)

  • RDS for PostgreSQL, On-Demand, 730 hours a month, 100 GB gp3 storage per copy
  • Option A: Single-AZ. Option B: Multi-AZ with one standby. Option C: Multi-AZ plus one Single-AZ read replica
  • Excluded: backup storage above the free allowance, data transfer, tax
ItemBasisEstimated per month
A. Single-AZ instance and storage730 x 0.168 + 100 x 0.115 USD134.14 USD
B. Multi-AZ instance and storage730 x 0.336 + 100 x 0.23 USD268.28 USD
C. Option B plus a read replica268.28 + (730 x 0.168 + 100 x 0.115) USD402.42 USD
Estimated totalAbout 134 USD (A), 268 USD (B) or 402 USD (C) per month

Worked examples are estimates calculated from the list prices above; they are not quotes or measured bills.

Frequently asked questions

What is the difference between RDS Multi-AZ and read replicas?

Multi-AZ keeps a synchronous standby in another Availability Zone for automatic failover and does not serve reads. Read replicas are asynchronous, readable copies used to scale reads or for disaster recovery, and they are promoted manually.

Can I read from the Multi-AZ standby?

Not with a Multi-AZ DB instance deployment. If you need readable standbys, use a Multi-AZ DB cluster (RDS for PostgreSQL and MySQL) or add read replicas.

How long does RDS Multi-AZ failover take?

AWS gives typical times of 60 to 120 seconds for a Multi-AZ DB instance and under 35 seconds for a Multi-AZ DB cluster. Large transactions or long recovery can extend it.

How much does an RDS read replica cost?

The same as a standard DB instance of the same class, plus its storage. In US East (N. Virginia) a db.m8g.large PostgreSQL replica lists at 0.168 USD per hour On-Demand. Replication traffic within the Region is free.

An Amazon RDS PostgreSQL database is configured as Multi-AZ: what happens during maintenance?

AWS says operations such as instance scaling or OS patching are applied to the standby first, followed by an automatic failover, so the availability impact is limited to the failover time.

Sources

Checked 8 October 2026.

How we research cloud database guides: our editorial method. CodeWithSQL earns nothing from the providers mentioned.

Choosing where to run your database?

Start with the section overview, or compare providers side by side.