1. AWSCLIのセットアップ

$ wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

公式サイトの説明はこちら Getting Set Up with the AWS Command Line Interface – AWS Command Line Interface

インストールの確認

$ /usr/local/bin/aws --version
aws-cli/1.3.12 Python/2.6.6 Linux/2.6.32-279.5.1.el6.x86_64

AWSのアクセス情報などを設定

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ap-northeast-1
Default output format [None]: json

デフォルトのリージョンは東京を指定しています。

コマンドを実行して設定を確認

# aws s3 ls
2014-04-04 13:13:07 mysql-app-backup
2014-05-21 13:13:07 wp-backup

上記は、s3のバケット一覧を取得するコマンドです。

バックアップスクリプトを作成

以下は、cronに登録するシェルスクリプト。
mysqldumpで対象データベースのバックアップを作成し、S3バケットにsyncします。

#!/bin/sh

THEDB="DATABASE-NAME"
THEDBUSER="DATABASE-USER"
THEDBPW="DATABASE-USER-PASSWORD"
THEDATE=`date +%d%m%y%H%M`

mysqldump -u $THEDBUSER -p${THEDBPW} $THEDB | gzip > /var/www/_backups/dbbackup_${THEDB}_${THEDATE}.bak.gz

find /var/www/_backups/db* -mtime +5 -exec rm {} \;

/usr/local/bin/aws s3 sync /var/www/_backups s3://BUCKET-NAME --delete

Cronにシェルスクリプトを登録

$ crontab -e
0 3 * * * /path/to/backup.sh > /dev/null 2>&1

以上で完了です。

参考: Automating Backups to Amazon S3 | trepmal*