And what about my backup procedure for this website for those curious? After all, it is still irreplaceable data that needs to be protected. And when you manage your own web server, you must manage your own web server backups. What I do is this:

  • At :01 every hour, a cron job runs that creates a backup of the database. At :02, it copies the backup file to S3. At :03, a separate job then syncs all of my new or changed WordPress application and media files to S3.
  • Every six hours, at :05 past the hour, yet another cron job submits a request to create an AMI (machine image) of my EC2 server and EBS volumes. This is the primary backup — not only is it significantly easier to restore the entire server in the event of a data problem, it’s also the easiest way to recover from a spot termination. (I use spot instances to keep costs down, but they come with unexpected terminations. If this site is broken, that’s probably why.)
  • And occasionally, I manually export my WordPress posts to an XML file. Admittedly this is a terrible backup solution, but it’s the AWS-had-a-catastrophic-failure-and-lost-all-my-data option. I need to improve this.