AWS RDS Snapshots And Read Replicas Explained
AWS RDS is a database service that is used to manage relational databases. When managing a database, there is an obvious requirement to backup the data generated in a timely fashion. RDS provides the feature to backup your databases automatically and manually.
“By default, Amazon RDS creates and saves automated backups of your DB instance securely in Amazon S3 for a user-specified retention period. In addition, you can create snapshots, which are user-initiated backups of your instance that are kept until you explicitly delete them.”
There are two main types of backups, Automated Backups and Database (Manual) Snapshots. These snapshots are snapshots of your entire database, not just the tables. Automated Backups are created every time the retention period is passed. E.g. if the retention period is 24 hours, a backup will be taken automatically every 24 hours.
You can use backups to perform point-in-time restores. What this means is that you can go back to a state which was back in time to the very second using its transaction logs.
Copying snapshots is also possible. You can create a snapshot and copy that to have two individual copies of that snapshot. And these can be shared within regions, across them and across AWS accounts as well!
The backups are stored on S3 and if you’re on the free tier, you get 20Gigs of backup storage free! 🎊
In the following parts of this article, I’m assuming you have already set up your RDS Database. If you haven’t, check out and follow along our RDS Create A Database article to get up and running with an RDS instance
Creating A Snapshot
To create a snapshot, you can go to Services > RDS > Databases, select your database and click on Actions. Here you can click on Take Snapshot.
All you need to do is give your snapshot a name, click on Take Snapshot.
Viola! Head into the Snapshots section of RDS and you’ll see your snapshot there. Well, it’ll take some time to complete (depending on how large your data is), but it’ll be available.
Creating A Read Replica
Head over to databases under RDS, select your database and click on Actions > Create read replica. Here you’ll see more or less all the options you would see when creating a new database, if you need more details on the options, check out our article on RDS Create A Database.
You can choose to have a Multi-AZ deployment as well for disaster recovery. Not just that, you can choose to deploy the read replica in a different region. This could be useful if say your website is live in two countries and you want to reduce the latency and provide read access by having a read replica in one country and the source DB in another.
Restoring To A Point In Time
Head over to databases under RDS, select your database and click on Actions > Restore to a point in time.
Notice that it says Launch DB Instance. This is because it will launch a new DB instance with a new DNS name that you need to connect to. So if you have an application that you need to connect to the database, then you’ll need to update the connection URL.
You can restore the database (create a new instance) to a point in time to the exact second that you select. 🤯
Multi AZ Deployments
Multi AZ means Multi Availability Zone deployment. Multi AZ deployments are used for extreme failover situations, like if the AWS Availability Zone literally catches fire, or there is a natural disaster. 🌪
If you select your DB instance and click modify, you’ll be able to set Multi AZ deployments to yes. However they are chargeable even if you’re using the free tier.
That’s all folks! Tune in again or check out other articles on the blog to be the AWS Pro 👨💻
See ya later! 👋