EC2インスタンス上でmysqldumpを実行して、ダンプファイルをS3バケットに送る手順です。
事前準備
クレデンシャルの登録をしておきます。
aws configure set aws_access_key_id <ACCESS_KEY_ID>
aws configure set aws_secret_access_key <SECRET_ACCESS_KEY>
aws configure set default.region ap-northeast-1
# regionは適宜変更のこと
バックアップスクリプトを作成します。
/home/ec2-user/backup_db.sh
#!/bin/bash
# バックアップ対象のDB
databases=(hoge fuga)
for db in ${databases[@]}; do
filename=/tmp/${db}.sql
mysqldump --quote-names --skip-lock-tables --single-transaction --flush-logs --master-data=2 $db > $filename
aws s3 cp $filename s3://<バケット名>
rm $filename
done
DBのバックアップを毎日午前5時に行うように設定します。
chmod 755 /home/ec2-user/backup_db.sh
(crontab -l; echo "0 5 * * * /home/ec2-user/backup_db.sh > /dev/null 2>&1") | crontab -
参考
mysqldumpのオプションについてはよく使うmysqldumpのオプションと使用例をご参考ください。
S3へのバックアップについては、 http://blog.serverfrog.jp/aws-cli-s3/ がよくまとまってます。