DEV Community

Wakeup Flower
Wakeup Flower

Posted on

RDS Multi-AZ DB clusters Vs Amazon Aurora Global Database

🧩 1. RDS Multi-AZ DB Cluster (for RDS engines like PostgreSQL or MySQL)

Purpose: High availability (HA) within a single AWS Region.

Architecture:

  • One primary (writer) and two standby (readable) replicas in different Availability Zones within the same Region.
  • Provides automatic failover in ~35 seconds.
  • Includes a reader endpoint to offload read traffic.
  • Uses synchronous replication between AZs (strong consistency).

Scope:

  • Confined to one Region.
  • Cannot replicate data globally.
  • Provides regional HA and read scaling, not global distribution.

Example use case:

“We need a highly available RDS PostgreSQL database for our production app in us-east-1.”


🌍 2. Aurora Global Database

Purpose: High availability and low-latency reads across multiple AWS Regions.

Architecture:

  • One primary Region with read/write access.
  • Up to 5 read-only secondary Regions for global reads and disaster recovery.
  • Uses Aurora’s storage-based replication, which is:

    • Asynchronous between Regions (latency < 1 second typically).
    • Synchronous within the primary Region (for local HA).

Scope:

  • Multi-Region replication (global).
  • Secondary Regions can promote to primary in case of a disaster.
  • Great for global apps with users across continents.

Example use case:

“We need our database to serve users in North America, Europe, and Asia with low read latency and disaster recovery between Regions.”


⚖️ Summary Table

Feature RDS Multi-AZ DB Cluster Aurora Global Database
Supported Engines RDS MySQL, RDS PostgreSQL Aurora MySQL, Aurora PostgreSQL
Replication Type Synchronous (within Region) Asynchronous (cross-Region)
Failover Time ~35 seconds <1 minute (Regional failover)
Read Scaling Within Region (reader endpoint) Global (across Regions)
Cost Lower Higher (global replication costs)
Use Case High availability within one Region Global app with multi-Region read/write needs

🧠 In short:

  • RDS Multi-AZ DB Cluster → Regional HA solution
  • Aurora Global Database → Global distribution + disaster recovery

🏗️ Multi-AZ DB Cluster Architecture (for RDS MySQL & PostgreSQL)

When you create a Multi-AZ DB cluster, AWS deploys multiple DB instances that share a single storage volume (using Amazon RDS-managed block storage replication).

Minimum setup:

  • 1 Writer (Primary)
  • 1 Reader (Standby / Replica) That’s the minimum Multi-AZ cluster — it gives you high availability and automatic failover.

⚙️ But by default, AWS actually creates 3 instances in many configurations:

  • 1 Writer (active)
  • 2 Readers (readable standbys, in different AZs)

This 3-AZ configuration is the recommended and default deployment for the newer Multi-AZ DB cluster feature (introduced in 2022).
Here’s why:

Role Purpose AZ Placement
Primary (writer) Handles writes AZ1
Reader 1 Hot standby, can serve reads AZ2
Reader 2 Additional standby/read replica AZ3

So even though one standby is technically enough, AWS provisions two readers across two other AZs for stronger fault tolerance (if an AZ goes down, another remains available).


⚡ Why 3 instances make sense:

  • Ensures automatic failover can still occur if one AZ is lost.
  • Provides additional read capacity without needing separate read replicas.
  • Keeps RPO = 0 and RTO < 35 seconds.
  • Replication is synchronous, so data is consistent across all nodes.

🧮 Cost and Flexibility

  • You can manually scale the number of reader instances (minimum 1).
  • If you want to minimize cost, you can choose a 2-instance setup (1 writer + 1 reader).
  • If you prioritize HA and read performance, use 3 instances (1 writer + 2 readers across 3 AZs).

🧠 Summary

Setting Writer Readers AZs Used Purpose
Minimum 1 1 2 AZs Basic HA
Default / Recommended 1 2 3 AZs Strong HA + Read scaling

Top comments (0)