Read Replica
Up to 15 read replicas
Within AZ, Cross AZ or Cross Region
Replication is Async, reads are eventually consistent
Replica can be promoted to their own db. I will keep living with its own life cycle later.
App need to update connection string to connect new one
For reporting application we can separately read read-replica only
Network cost
Within same region no fee for replication
If spread across different regions, have to pay fee
Multi AZ(Disaster Recovery)
SYNC replication, One DNS name automatic app failover to standby
Increase availability
Single AZ to Multi AZ
Zero downtime operation
How it work under the hood
- Take snapshot, create new standby az
- Synchronization started
RDS custom
Managed MSQL server, oracle
Have access to underlying os and db
- So can configure settings
- Install patches
- Can access underlying instance
- Deactivate automation mode to customize(better to take DB snapshot before)
RDS vs RDS custom
RDS: AWS manage
RDS custom: full access to underlying database and OS
Backups
Automated backups
Daily full backup at the backup windows
Transitions logs are backup every 5 minutes
Ability to restore any point in time (from oldest backup up to 5 minutes)
1 to 35 days retentions, set 0 to disable backup
Manual DB snapshots
User manually take snapshot of aurora
Retention can be as long as the user wants
Tip: to save cost for stopped database, take snapshot and delete original database. Can use snapshot to restore data at anytime.
Restore
From s3
Backup on premise database
Store backup on s3
Restore that backup from s3 on rdb running mysql
RDS PROXY
Allow app to pool and share DB connections established with database.
Improving the efficiency by reducing the stress on database resources such as CPU and RAM .
And minimize the open connections (and timeout)
Serverless, autoscaling, highly available.
Reduce RDS and Aurora failover by 66%
Support both RDS and Aurora.
No code changes required
Enforce IAM Authentication for DB and securely store credentials in AWS secret manager.
RDB proxy is never publicly available(can only be connected via VPC)