One of the biggest fears of any product owner is opening your website one morning and finding nothing there. Your site has disappeared without a trace, and you’re left scrambling to pick up the pieces. Fortunately, one of the many benefits of having your application live in the cloud is the ease with which your data can be backed up.
AWS offers reliable backup services for many of its resources. Here are some effective strategies for backing up data in Amazon’s RDS, EBS, S3, and AMI. By implementing these procedures, your worst nightmare becomes only a temporary setback!
RDS Backup and Restore
If you store your databases in Amazon’s Relational Database Service (RDS), it’s simple to take automatic, daily backups of your database. In the instance that data (or the entire database) is accidentally deleted, your developers can quickly bring it back online with less than a day’s worth of data loss. Configuring your database with a backup window ensures that backups happen at a time when the application is least impacted.
AWS can retain backups for up to 35 days. The first backup stored for an active database is free. However, each additional one is $0.095 per GB/month, so keep cost in mind when setting the retention period. Databases can also be manually backed up – a practice I encourage if you’re about to perform a large update and want to prepare for the worst.
Block Storage Backup
Amazon’s Elastic Block Storage (EBS) acts as a hard drive for your web servers. Often, your important documents and data will exist outside of this form of storage. In that case, the contents of your EBS won’t change significantly and you’ll only need to back it up after the initial setup. With this approach, you’ll be able to quickly boot up another server in case your current server goes down.
If your application makes more use of your EBS, it’s possible to back it up more frequently. AWS doesn’t have as convenient of a backup solution for EBS as it does for databases. However, with the use of the CloudWatch service, you can create new snapshots as frequently as needed.
Amazon Machine Images
Amazon Machine Images define properties of your server’s configuration, including the root device and launch permissions. AWS has many images defined for you out of the box, but developers usually find it beneficial to create their own. Similar to EBS backups, these images are useful in disaster recovery situations and make spinning up new servers easy. If you have snapshots of EBS volumes, you can even define your image to use a snapshot when creating an instance.
S3 For Rarely Used Files
AWS provides file storage through S3 (Simple Storage Solution). With the durability of 99.9999%, files stored there don’t need to be backed up. Instead, consider setting the lifecycle of files through S3 Glacier or S3 Deep Archive. Either option is an inexpensive way to store rarely used documents, with prices ranging from $0.00099 - $0.004 per GB/month. S3 has automatic lifecycle management settings that allow you to transfer files a certain number of days after they’ve been created. To avoid excessive storage, you can even set documents to delete within a certain number of days.
Of course, these less expensive options have a downside. With Glacier, your documents will be available anywhere between a few minutes and a few hours after you request them. Deep Archive only promises less than 12 hours. Regardless, these services are both good options to store rarely used documents.
AWS provides extensive backup solutions to ensure your data and configurations aren’t lost in a disaster. They even provide a service, AWS Backup, to automate and fully manage several of the backups listed above. To read more about preparing for disaster recovery, check out Tips for Developing your AWS Disaster Recovery Plan. the experts at DragonSpears if you need help customizing these solutions to your specific needs.