What is the difference between Amazon RDS and Aurora, and when should you use each?
Amazon RDS and Aurora are both managed relational database services from AWS, but they differ significantly in architecture, performance, and capabilities.
Amazon RDS
RDS is a managed service that handles common database administration tasks for traditional database engines.
Supported Engines
- MySQL, PostgreSQL, MariaDB
- Oracle, Microsoft SQL Server
- Db2
Architecture
- Traditional single-server or Multi-AZ setup
- Synchronous replication for Multi-AZ standby
- Standard EBS storage (gp2, io1)
- Up to 5 read replicas
Key Features
- Automated backups, patching, monitoring
- Multi-AZ for high availability (standby not readable)
- Point-in-time recovery
- Familiar database engine compatibility
Amazon Aurora
Aurora is a cloud-native relational database engine built from the ground up for cloud performance and availability.
Supported Engines
- Aurora MySQL (compatible with MySQL 5.7/8.0)
- Aurora PostgreSQL (compatible with PostgreSQL)
Architecture
- Distributed, shared storage layer across 6 copies in 3 AZs
- Storage automatically scales from 10GB to 128TB
- Up to 15 Aurora Replicas (all readable)
- Continuous backup to S3
Performance Advantages
- 5x throughput vs MySQL RDS
- 3x throughput vs PostgreSQL RDS
- Faster failover: typically under 30 seconds
Additional Features
- Aurora Serverless: Auto-scales compute up/down to zero
- Aurora Global Database: Multi-region replication with < 1 second lag
- Aurora Multi-Master: Multiple read-write instances
- Backtrack: Roll back database to specific point without restore
Comparison
| Feature | RDS | Aurora |
|---|---|---|
| Engines | MySQL, PG, MSSQL, Oracle | MySQL, PostgreSQL |
| Storage | Single-server EBS | Distributed cluster |
| Read Replicas | Up to 5 | Up to 15 |
| Failover | 1-2 minutes | < 30 seconds |
| Storage scaling | Manual | Automatic |
| Cost | Lower for simple workloads | Higher base cost |
When to Use Each
Use RDS when:
- Running Oracle or SQL Server (no Aurora equivalent)
- Cost is primary concern for small workloads
- You need exact MySQL/PostgreSQL feature compatibility
Use Aurora when:
- High performance and availability are critical
- Multi-region replication required
- Serverless or variable workload patterns
- Large-scale workloads > 5 read replicas needed