Backing up to S3

I recently setup an automated backup system for my (and my wife’s) blog.1 Based on the recommendation of Mr O’Grady (and my belief that RESTful architectures are a good way to solve most problems) I decided to use Amazon’s S3 as the off site storage. I did not to take the same approach as RedMonk, however, because I wanted to play with S3 a bit more directly.

After playing with it I have to say that I am very impressed. S3’s RESTful API is powerful while being simple enough get started with right away. The Ruby AWS::S3 library makes it even easier to get started by providing a nice, idiomatic, wrapper around S3’s functionality.

My backup solution ended up being a 20 line ruby script2 that dumps a database, compresses the dump and then pushes it to S3. That combine with a couple of crontab entries and I was done.

It gets better, though. I got my first bill today:

Greetings from Amazon Web Services,

This e-mail confirms that your latest billing statement is available on the AWS web site. Your account will be charged the following:

Total: $0.02

Please see the Account Activity area of the AWS web site for detailed account information:

So there you go, a secure remote backup for only 2 cents (and a couple of hours of my time). I think these web service things may be around to stay.

  1. I cannot believe it took me so long to get around to that.

  2. That 20 lines includes nice command line argument parsing, too, thanks to Main (maybe when it grows up it will get a website of it’s own).