44

I'd expect this to be fairly routine, but cannot find a simple approach for creating an managing EBS snapshots automatically.

Was hoping there'd be a shceduler in the AWS console.. alas not yet.

Would appreciate any suggestions as to how best to do this on from Ubuntu.

Thanks

Jonik
  • 80,077
  • 70
  • 264
  • 372
Dom
  • 1,486
  • 2
  • 14
  • 22
  • 29
    Another excellent question closed as "not constructive" – James Feb 03 '14 at 17:43
  • 2
    Yeah, I don't get it either. So it isn't exactly a great question, but it still has a lot of value. Throwing the baby out with the bath water, if you ask me... – Joel B Aug 27 '14 at 17:21

5 Answers5

23

Take a look at AWS missing tools and especially to https://github.com/colinbjohnson/aws-missing-tools/tree/master/ec2-automate-backup This does what you need.

Nikita Leonov
  • 5,684
  • 31
  • 37
13

You can easily script something to do this for you.

  1. setup the EC2 commandline API tools
  2. set EC2_CERT and EC2_PRIVATE_KEY in order to be able to use the API tools
  3. parse the results of ec2-describe-snapshots
  4. delete the appropriate snapshots

The results look something like:

SNAPSHOT    snap-xxxxxxxx   vol-xxxxxxxx    completed   2009-08-26T07:39:33+0000    100%

You can then do some parsing of the dates and sorting and start removing the older snapshots.

NOTE: I don't know if we can trust the sort order but I've never seen it sort any other way than oldest to newest.

To delete a snapshot, use ec2-delete-snapshot snap-xxxxxxxx.

The rest I leave to you as a simple Bash script that you can call daily or however often you need from cron.

Matt Todd
  • 817
  • 8
  • 12
  • 2
    One can always use 'sort' to ensure the sort order like: "ec2-describe-snapshots | sort -k 5" – Vikash Jul 30 '12 at 11:53
1

I found this, hope it helps:

ec2-describe-snapshots | sort -r -k 5 | sed 1,6d | awk '{print "Deleting snapshot: " $2}'; system("ec2-delete-snapshot " $2)' 

See: Bulk Delete EBS Snapshots From the Command Line (A Howto).

franzlorenzon
  • 5,845
  • 6
  • 36
  • 58
1

Shameless plug, but - you can give Ebs2s3 a go: https://github.com/ajmfulcher/ebs2s3

Rails app to automate snapshot creation and prune old snapshots. Introduction and some screenshots here: http://ajmfulcher.blogspot.com/2011/04/ebs2s3-automated-backup-for-amazon-ebs.html

ajmfulcher
  • 11
  • 1
0

A wonderful script to create an automatic snapshots.

https://github.com/rakesh-sankar/Tools/blob/master/AmazonAWS/EBS/EBS-Snapshot.sh

Just copy the code and create a file, then add a cronjob whenever you want it to run.

RSX
  • 376
  • 4
  • 14
Rakesh Sankar
  • 9,337
  • 4
  • 41
  • 66