Backing Up Your Drupal Site To The Amazon Cloud, S3

Warning: Don't use capital letters when assigning names on Amazon S3. Some users have reported issues when using capital letters in names, so to be safe, use only lower case letters.

Step 1 - Install these two modules in Drupal:

Step 2 - Create an Amazon Web Services (AWS) account if you don't already have one:

Step 3 - Create a specific user for your site's backups (example:sitebackups).

  • For more information, see the AWS identity and Access Management (IAM) documentation. If you are unsure as to where to find this documentation, log into your AWS Account. You will see the IAM link in your Amazon Web Services Dashboard.
  • Once you create the user for backups, make sure to make a copy the access and secret keys. (Cut-and-paste these keys into Notepad in order to strip out any HTML tags.)

Step 4 - Create a group and policy for this user.

Step 5 - In Drupal, go to Configuration —> Backup and Migrate.

  • Choose “Destinations”. Then select “Add Destination”.
  • (You will need to create a new Destination if you’re using Drupal 6)
  • Enter the access information for your Amazon S3 Bucket.
    • (Note: If you're creating the Bucket now, don't forget to use all lower case letters!)

Step 6 - Run a test backup and see if it's in your Amazon S3 Bucket.

  • If this is the first time using the Backup and Migrate module, I suggest setting up a basic backup and saving it to your server first.
    • (Note: Your first attempt to backup directly to your Amazon S3 Bucket will probably fail. See my troubleshooting notes below.)

Troubleshooting:

  • It's very likely that your attempt to backup to S3 will fail. Check this:
  • For your Amazon S3 Bucket permissions, add a grantee: “Authenticated Users”, and give them upload/delete rights.
  • Install the S3 PHP Class manually
  • Due to drupal.org code-hosting policies, the Amazon S3 library needed to use an Amazon S3 destination is no longer distributed with this module.
  • You must download the library from http://undesigned.org.za/2007/10/22/amazon-s3-php-class and place it in this location:sites/all/libraries/s3-php5-curl
    • (Note: I created the directory s3-php5-curl under sites/all/modules/backup_migrate/includes/ and mine started working. But this is not recommended.)

User Group Policy Code:

User Group Policy Code