- Storage architecture
- Performance
- Replication
- Automatic failover
- Backup and restore
Storage architecture
The fundamental architectural difference between Aurora and RDS is how they handle storage.- RDS: Each database instance typically uses instance-attached block storage (Amazon EBS). Storage is tied to the instance lifecycle, and scaling storage or IOPS requires provisioning larger EBS volumes or different volume types.
- Aurora: Compute (database instances) is decoupled from a distributed, fault-tolerant storage layer. Data is split into 10 GB segments and each segment is replicated across multiple storage nodes in the cluster. Aurora keeps multiple copies of each segment across Availability Zones (AZs) to provide high durability and availability.
- Aurora’s shared, distributed storage enables independent scaling of compute and storage, reduces single points of failure, and improves resilience out of the box.
- RDS’s block-storage model is simpler to reason about for many legacy deployments, but resiliency and scaling require different operational approaches (EBS snapshots, resizing, Multi-AZ setups).
Performance
Aurora is optimized for low-latency, high-throughput workloads—especially read-heavy applications—because of its separation between compute and a shared storage layer.
- Aurora offers reader endpoints and multiple read replicas that can offload read traffic from the writer without duplicating storage, which reduces replication lag and improves read scaling.
- RDS read replicas (where supported) usually use asynchronous replication, which can create replication lag under load and make strongly consistent reads harder to guarantee.
Replication
Aurora’s storage layer uses a quorum-based replication model that differs significantly from many traditional RDS replication approaches.
- Aurora divides data into segments and maintains multiple copies (typically six copies across three AZs). A write is considered durable once a quorum of storage nodes acknowledges it. Because readers share the same storage layer, replication lag is very low.
- RDS replication depends on the engine: asynchronous logical/physical replication for read replicas, and synchronous replication only for RDS Multi-AZ standbys in many engines. Behavior varies by engine version and configuration.
Automatic failover
The mechanics and speed of automatic failover differ between Aurora and traditional RDS Multi-AZ setups.
- Aurora: Because compute is separate from storage and storage is synchronized across AZs, a reader or another instance can be promoted quickly to writer. The shared, quorum-backed storage minimizes risk of data loss and reduces failover time.
- RDS Multi-AZ: Uses a standby instance in another AZ (often with synchronous replication). Failover requires promoting the standby instance and redirecting connections; this typically takes longer than Aurora failover and behavior can vary by engine.
Backup and restore
Backup behavior and restore performance are another area where Aurora provides operational advantages.
- Aurora: Continuous, incremental backups to Amazon S3 are built into the storage layer. Incremental snapshots and point-in-time recovery are fast and efficient, lowering operational overhead for backups and restores.
- RDS: Automated backups and snapshots are supported and operate against instance block storage. Depending on database size, workload, and EBS snapshot behavior, backups/restores can be slower or more resource-intensive.
Side-by-side comparison
| Dimension | Amazon Aurora | Amazon RDS |
|---|---|---|
| Storage model | Distributed, shared storage (segmented, replicated across AZs) | Instance-attached block storage (EBS) |
| Replication | Quorum-based storage replication (low lag) | Varies by engine: async read replicas or sync Multi-AZ |
| Read scaling | Reader endpoints + shared storage → low-lag reads | Read replicas (async) → higher potential lag |
| Failover | Fast promotion, minimal data loss (shared storage) | Multi-AZ standby promotion → typically slower, engine-dependent |
| Backups | Continuous, incremental to S3 → fast PITR & snapshots | Automated backups/snapshots on EBS → can be slower for large DBs |
- Choose Aurora when you need:
- High read throughput and low-latency reads
- Fast, low-lag replication and quick failover
- Seamless compute scaling independent of storage
- Continuous, incremental backups with fast restores
- Choose RDS when you need:
- A traditional instance-attached storage model (EBS) or specific database engine behaviors/extensions not available in Aurora
- Simpler single-instance setups or compatibility with legacy tooling
If your workload is read-heavy, requires rapid failover, or needs highly available, scalable storage with minimal operational overhead, Amazon Aurora is often the better choice. For legacy requirements, specialized engine features, or when you prefer instance-attached storage semantics, RDS remains a robust option.
- Amazon Aurora documentation: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html
- Amazon RDS documentation: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html
- AWS whitepaper: AWS Database Migration & Modernization (for migration considerations)