It looks like a very required and trivial task. But there is not outof the box solution in AWS. But fortunately it is easy to setup with few steps.
-
Opent SSH connection to your server.
-
Navigate to folder
$ cd /usr/local/ -
Clon this gist
$ git clone https://gist.github.com/9738785.git ec2 -
Go to that folder
$ cd ec2 -
Make
backup.phpexecutable$ chmod +x backup.php -
Open releases of the AWS PHP SDK github project and copy URL of
aws.zipbutton. Now download it into your server.$ wget https://github.com/aws/aws-sdk-php/releases/download/2.6.0/aws.zip -
Unzip this file into
awsdirectory.$ unzip aws.zip -d aws -
Edit
backup.phpphp file and set all settings in line5-12$dryrun = FALSE; $interval = '24 hours'; $keep_for = '10 Days'; $volumes = array('vol-********'); $api_key = '*********************'; $api_secret = '****************************************'; $ec2_region = 'us-east-1'; $snap_descr = "Daily backup"; -
Test it. Run this script
$ ./backup.phpTest is snapshot was created.
-
If everything is ok just add cronjob.
* 23 * * * /usr/local/ec2/backup.php