Free Database Audit: comprehensive health report for your database

Learn More

Aurora vs RDS — sound familiar?

  • Aurora bill higher than expected — I/O-optimised vs standard, instance class, multi-AZ — the cost model has 3+ axes you didn't model. The bill doubled in 6 months.
  • 5x performance claim doesn't materialise — Marketing said 5x. Your workload sees 1.2x. Workload is write-heavy and Aurora's read-replica architecture doesn't help you.
  • Stuck on RDS, wondering about Aurora — Considering the migration but unclear whether the throughput jump justifies the cost. Need the actual decision math, not vendor brochure.

JusDB DBAs run both in production. We'll give you the honest answer in 30 minutes — no vendor pitch. Book a comparison call →

Production DBA Comparison

Aurora MySQL vs RDS for MySQL

Aurora and RDS for MySQL are both AWS-managed services, but they're architecturally very different beasts. Aurora uses a shared-storage cluster model with 6-way replication and decoupled compute. RDS for MySQL is a closer-to-vanilla MySQL with EBS storage. The right pick depends on your read-write ratio, scale, HA requirements, and how much per-IO cost you can stomach. This guide is the production-DBA view of when each wins.

Feature Matrix

Aurora MySQL vs RDS for MySQL — side-by-side

FeatureAurora MySQLRDS for MySQL
Storage architectureDistributed shared storage, 6-way replicationEBS gp3 or io2 volumes per instance
Read replicasUp to 15 (low-latency, same storage)Up to 5 (separate EBS, replication lag)
Failover time30-60 seconds typical60-120 seconds typical
Storage scalingAuto-scaling 10GB → 128TBManual or storage-autoscaling
Storage cost$0.10/GB-month + I/O charges$0.115/GB-month (gp3) no per-I/O
I/O charges$0.20 per 1M requests (standard) or included (I/O-optimised)Included in EBS volume
Backup retentionUp to 35 days, continuousUp to 35 days, snapshot-based
Multi-regionAurora Global Database (sub-second lag)Read replicas across regions (async)
Serverless optionAurora Serverless v2 (auto-scaling ACUs)No native serverless
EncryptionAt-rest (KMS) + in-transitAt-rest (KMS) + in-transit
Max instance classdb.r7g.16xlargedb.x2iedn.32xlarge
Min instance classdb.t4g.medium (Serverless v2: 0.5 ACU)db.t4g.micro
MySQL version compatibilityMySQL 5.7, 8.0MySQL 5.7, 8.0, 8.4
Pricing model complexityHigher (I/O + storage + compute + IO-Opt option)Simpler (storage + compute)
Read-heavy throughputVery high (15 replicas, shared storage)Limited (replica lag scales with writes)
Write-heavy throughputBottlenecked by single writerBottlenecked by single writer + EBS IOPS
Connection scalingRDS Proxy supportedRDS Proxy supported
Cloud-vendor lock-inHigh (proprietary storage layer)Low (standard MySQL, exportable)

When Aurora MySQL wins

Read-heavy workloads

15 read replicas with shared storage — near-zero lag. Aurora's read scaling is the headline feature.

HA criticality

30-60s failover vs RDS 60-120s. 6-way replication means data loss tolerance is minimal.

Serverless / variable workloads

Aurora Serverless v2 auto-scales ACUs based on load — RDS doesn't have an equivalent.

Cross-region read replicas

Aurora Global Database has sub-second cross-region lag. RDS cross-region replicas are async.

Storage management

Auto-scaling 10GB → 128TB. No DBA intervention to grow storage.

When RDS for MySQL wins

Cost-sensitive deployments

RDS is 30-50% cheaper at small/medium scale. No per-I/O charges. The Aurora premium is real.

Write-heavy workloads

Aurora's shared storage doesn't help if you have a single write hotspot. RDS gets you closer to bare-metal MySQL write throughput per dollar.

Standard MySQL feature parity

Aurora is mostly compatible but has some divergences (MySQL 8.4 not yet supported, certain replication features). RDS is closer to vanilla MySQL.

Multi-AZ simplicity

RDS Multi-AZ is well-understood and operationally simple. Aurora cluster topology has more moving parts.

Lower lock-in

RDS data exports trivially; Aurora's storage layer is AWS-proprietary.

Migration

Migration paths between Aurora MySQL and RDS for MySQL

RDS MySQL → Aurora MySQL

Use the "Create Aurora replica" option in RDS console for near-zero-downtime; then promote. Validate replication lag and connection pool.

Aurora MySQL → RDS MySQL

mysqldump + binlog replay; or DMS task with full + CDC. Test on staging first — some Aurora features won't exist.

Self-hosted MySQL → Aurora/RDS

DMS migration task with CDC for zero-downtime. Aurora preferred for HA-critical; RDS for cost-sensitive.

FAQ

Common questions

Need help deciding?

We run both in production. 30-minute call, honest answer for your specific workload, no vendor pitch.