Snapshots of Elastic Block Store (EBS) volumes can now be easily configured and automated to provide regular backups using the Data Lifecycle Manager.
Using tags on EBS volumes, you can define backup and retention schedules for snapshots by creating lifecycle policies. This guide shows you how to create the tags on the volumes then create a simple 7 day backup and retention policy using the Data Lifecycle Manager.
Please be aware the Data Lifecycle Manager is free to use but you do pay for the storage used for the snapshots.
Fortunately from a cost perspective snapshots are incremental backups, which means that only the blocks on the device that have changed after your most recent snapshot is saved. This minimises the time required to create the snapshot and saves on storage costs by not duplicating data but please consider/monitor the costs if you have huge daily block changes on the EBS volume.
Create and assign the tag
Firstly you must add a tag to your EBS volumes that you want backed up;
Within the EC2 dahboard, navigate to the Elastic Block Store > Volumes, alternatively if you do not know the EBS volume in question go to the EC2 instances, select the EC2 then note the root/block devices you want added or click through using the EBS ID to the volume page.
Once you have your volume selected go to the tags tab then add a logical descriptive key name and value, for the purpose of this guide I am using a key name of EBSLifecycleManagerSnapshotDaily with a value of yes, once added it should look similar to the following;
Repeat this step by adding the created tag and the same value to all of the EBS volumes you require snapshots for.
Create the Snapshot Lifecycle Policy
Now the volumes have been tagged, you need to create a lifecycle policy, navigate to Elastic Block Store > Lifecycle Manager and select Create Snapshot Lifecycle Policy
Create a policy similar to below but based on your own requirements giving a descriptive name, adding the target volumes with tags and ensuring the value of yes is set, give the schedule a logical name, set the snapshot frequency, creation time and number of snapshots, for the purposes of this I have set it to keep only the last weeks worth of snapshots.
Add any tags you require and use the default IAM role if you do not have one already setup then select create policy
Once the policy has been recreated you should see you policy similar to;
Monitor your snapshots over the following days to ensure no errors have occured and snapshots are creating succesfully. Your first snapshot will always be the largest in size as this is a full backup.