Skip to main content

Snapshotting EBS Volumes with Cloudwatch Events

Posted on October 17, 2018 by TerryCoxTerryCox

Hey, you! Yes, you, the one who thought of everything. You developed your app, you deployed it to your EC2 server, you configured the SSL, and you got your database all setup on RDS. You’re just starting out, so you don’t have a lot of complexity to your site. Everything is looking good!

But what if the EC2 instance were to fail or need a rollback?

If it were 2016, you would be writing a script right now to automate the snapshots because backups are good! Luckily, we have moved past this and there’s a simple service that schedules your EBS snapshots for you! This service is the CloudWatch Events service.

Sure, going to the CloudWatch console to perform an automatic EBS backup sounds a little strange. It would make more sense for this to be in the EC2 console, but I digress. The main takeaway here is that it is much easier to create a CloudWatch event than it is to script your backups manually. So, let’s set up one of these bad boys!

Snapshotting data the easy way with Cloudwatch Events

First, head on over to the EC2 console and obtain the “EBS Volume ID”. In this example, I’ll be backing up the “/dev/sdb” volume since it’s my data volume. I have added a separate volume to make expanding and upgrading my instance easier without affecting the data.
cloud watch events

Once you click on that, you are greeted with more information about the volume. The information you want is boxed in red:
cloud watch events
Ok, great! Now, let’s schedule those snapshots! Head back to the CloudWatch console, choose “Events” on the side, and click Create rule.
cloud watch events
Once you click on that, you will see the Create rule screen. I want to snapshot my EBS volume once a day, so I’m going to choose the “Schedule” radio button, then the “Fixed rate” radio button, and finally enter “24 Hours” as the rate. Once this is done, it’s time to select the target. To do this, select “EC2 CreateSnapshot API call” from the drop down and paste the “Volume ID” you retrieved from the EC2 console. Then click Configure details.
cloud watch events
Notice how many options there are in the “Targets” dropdown. You can accomplish a lot just from this console. It has certainly made administration and maintenance tasks much simpler!

After you click Configure details, you move on to the final screen in the process. In the “Configure rule details” screen, create a name, a description, enable or disable it, and select your role. Luckily, the CloudWatch Events service already has roles preconfigured for the operations it offers. In most cases, you will select the “AWS_Events_Actions_Execution” role and click Allow on the screen that follows. After doing completing this step, you will be brought back to the “Configure rule details” screen.

Once everything is configured, go ahead and click Create rule!
cloud watch events
If there was no error, you will see the following screen:
cloud watch events
Congratulations! You are now snapshotting your EBS volume once a day! You can now, hopefully, focus your sleepless nights on development rather than worrying about your data volume disappearing into thin air! Go forth and conquer!
If you want to learn more about backing up your data through valuable hands-on experience with these concepts and many others, join our vibrant and growing community of some of the world’s leading cloud experts.


Leave a Reply

Your email address will not be published. Required fields are marked *