Skip to content
RDS (non-Aurora)
Sub-page 1 of 9
Core one-way-door · Free

Choosing a Topology You Can't Casually Undo

Decision drivers
  • Multi-AZ DB Cluster exists only for MySQL/PostgreSQL — the decision is void for Oracle, SQL Server, and MariaDB
  • Whether a standalone read replica already exists or is planned alongside a Multi-AZ Instance (the condition that makes the Cluster topology a cost improvement, not just a feature add)
  • Topology changes require snapshot + restore, not an in-place modification — budget it as a rebuild
  • Multi-AZ Cluster requires NVMe-backed instance families (m5d/m6gd/m6id/m6idn/r5d/r6gd/r6id/r6idn/x2iedn/c6gd) — a compute-family constraint, not a checkbox
  • Relative cost floor: Multi-AZ Instance = 2x base rate; Multi-AZ Cluster = 3x base rate

Production premise

RDS deployment topology isn't an HA toggle — it's a choice of replication layer and node count. Single-AZ has no automated failover at all (restore from snapshot is the only recovery path). Multi-AZ Instance adds one passive standby, replicated synchronously at the EBS block layer — a commit doesn't return until both AZs have the write on disk, but the standby's database engine sits idle until promoted. Multi-AZ DB Cluster (MySQL/PostgreSQL only) adds two active readable standbys using Raft-consensus semi-synchronous replication over local NVMe — a commit needs only one standby to acknowledge, and because both standbys run warm engines continuously applying the replication stream, promotion skips crash recovery entirely.

Failure mode & inflection point

Needing Multi-AZ Cluster's read capacity or write-latency profile after you've already built on Multi-AZ Instance. There's no in-place upgrade path — Multi-AZ Cluster requires NVMe-backed instance families (AWS supports db.m5d, m6gd, m6id, m6idn, r5d, r6gd, r6id, r6idn, x2iedn, and c6gd for this topology) and a different storage architecture entirely, so migrating means a snapshot-and-restore or standing up a parallel cluster and orchestrating logical replication or a Blue/Green cutover. And if you're on SQL Server, Oracle, or MariaDB, this option doesn't exist regardless of scale.

Production guardrail

Default to Multi-AZ Instance for any production workload without a proven multi-reader need. Move to Multi-AZ DB Cluster only when two concrete facts are both already true: you're on MySQL or PostgreSQL, and you're already running — or about to provision — a standalone read replica alongside a Multi-AZ Instance. That's the exact pattern Multi-AZ Cluster replaces at a real saving (3 nodes at 3x base rate vs. 4 nodes at 4x), while also cutting failover from 60–120s down to under 35s. Provisioning Multi-AZ Cluster speculatively, before that read-replica need exists, just locks you into NVMe instance families and a 3x cost floor for capability you aren't using yet.