Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I stick only to AWS RDS Automated Backup or DB Snapshots?

I am using AWS RDS for MySQL. When it comes to backup, I understand that Amazon provides two types of backup - automated backup and database (DB) snapshot. The difference is explained here. However, I am still confused: should I stick to automated backup only or both automated and manual (db snapshots)?

What do you think guys? What's the setup of your own? I heard from others that automated backup is not reliable due to some unrecoverable database when the DB instance is crashed so the DB snapshots are the way to rescue you. If I am to do daily DB snapshots as similar settings to automated backup, I am gonna pay much bunch of bucks.

Hope anyone could enlighten me or advise me the right set up.

like image 785
James Wise Avatar asked Mar 22 '12 02:03

James Wise


People also ask

What is the difference between automated backups and DB snapshots?

Automated backups are deleted when the DB instance is deleted. Only manually created DB Snapshots are retained after the DB Instance is deleted.

Is an RDS snapshot the same as a backup?

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.

Is RDS snapshot a full backup?

RDS creates a storage volume snapshot of your DB instance, backing up the entire DB instance and not just individual databases. RDS saves the automated backups of your DB instance according to the backup retention period that you specify.

Does taking RDS snapshot affect performance?

Automated Snapshots These are the daily snapshots that are created automatically by your RDS instance. They have a "Snapshot Type" of "automated". Performance is never impacted when automated snapshots are being created.


1 Answers

From personal experience, I recommend doing both. I have the automated backup set to 8 days, and then I also have a script that will take a snapshot once per day and delete snapshots older than 7 days. The reason is because from what I understand, there are certain situations where you could not restore from the automated backup. For example, if you accidentally deleted your RDS instance and did not take a final snapshot, you would not be able to access the automated backups that were done. But it is also good to have the automated backups turned on because that will provide you the point-in-time restore.

Hope this helps.

EDIT

To answer your comment, I use a certain naming convention when my script creates the snapshots. Something like:

autosnap-instancename-2012-03-23

When it goes to do the cleanup, it retrieves all the snapshots, looks for that naming convention, parses the date, and deletes any older than a certain date.

I think you could also look at the snapshot creation date, but this is just how I ended up doing it.

like image 192
BigJoe714 Avatar answered Oct 14 '22 16:10

BigJoe714