- Aurora is a proprietary technology from AWS (not open sourced)
- Postgres and MySQL are both supported as Aurora DB (that means your drivers will work as if Aurora was a Postgres or MySQL database)
- Aurora is “AWS cloud optimized” and claims 5x performance improvement over MySQL on RDS, over 3x the performance of Postgres on RDS
- Aurora storage automatically grows in increments of 10GB, up to 128 TB.
- Aurora can have up to 15 replicas and the replication process is faster than MySQL (sub 10 ms replica lag)
- Failover in Aurora is instantaneous. It’s HA (High Availability) native.
- Aurora costs more than RDS (20% more) – but is more efficient
High Availability and Read Scaling
-
6 copies of your data across 3 AZ:
- 4 copies out of 6 needed for writes
- 3 copies out of 6 need for reads
- Self healing with peer-to-peer replication
- Storage is striped across 100s of volumes
-
One Aurora Instance takes writes (master)
-
Automated failover for master in less than 30 seconds
-
Master + up to 15 Aurora Read Replicas serve reads
-
Support for Cross Region Replication
Endpoints
There are writer and reader endpoint.
Writer endpoint:
- It will point to the master, which is the only DB that can write to storage
- Even when master fails over, client will connect to writer endpoint and will be redirected to the new master, providing failover
ONLY THE MASTER CAN WRITE
Reader endpoint:
- Read Replicas can auto scale, and it can be hard for apps to track which replica is where
- Reader endpoint act as a connection load balancer, connecting all read replicas
Features
- Automatic fail-over
- Backup and Recovery
- Isolation and security
- Industry compliance
- Push-button scaling
- Automated Patching with Zero Downtime
- Advanced Monitoring
- Routine Maintenance
- Backtrack: restore data at any point of time without using backups
Advanced Features
Auto Scaling
You can set up auto scaling, so read replicas will be scaled accordingly. Reader endpoint will extend to cover newly generated replicas.
Custom Endpoints
You create a custom endpoint to cover some replicas. Like if you have 2 stronger instances, you can redirect them to your custom endpoint for running analytical queries
Serverless
Automated database instantiation. Good for infrequent, intermittent or unpredictable workload
- No capacity planning needed
- Pay per second, can be more cost-effective
Global Aurora
Aurora Cross Region Read Replicas:
- Useful for disaster recovery
- Simple to put in place Aurora Global Database (recommended):
- 1 Primary region (read/write)
- Has multi-region database
- Up to 10 secondary (read-only) regions, replication lag is less than 1 second
- Up to 16 Read Replicas per secondary region
- Helps for decreasing latency
- Promoting another region (for disaster recovery) has an RTO of <1 minute
- Typical cross-region replication takes less than 1 second
Aurora Database Cloning
It is used to create a new cluster that initially shares the same data, but a separate and independent volume.
- Create a new Aurora DB cluster from an existing one
- Faster than snapshot & restore, because it uses copy-on-write protocol where only writes happen when there are changes