1. AWSCLIのセットアップ
[bash gutter=”false”]
$ 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
[/bash]
公式サイトの説明はこちら Getting Set Up with the AWS Command Line Interface – AWS Command Line Interface
インストールの確認
[bash gutter=”false”]
$ /usr/local/bin/aws –version
aws-cli/1.3.12 Python/2.6.6 Linux/2.6.32-279.5.1.el6.x86_64
[/bash]
AWSのアクセス情報などを設定
[bash gutter=”false”]
$ 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
[/bash]
デフォルトのリージョンは東京を指定しています。
コマンドを実行して設定を確認
[bash gutter=”false”]
# aws s3 ls
2014-04-04 13:13:07 mysql-app-backup
2014-05-21 13:13:07 wp-backup
[/bash]
上記は、s3のバケット一覧を取得するコマンドです。
バックアップスクリプトを作成
以下は、cronに登録するシェルスクリプト。
mysqldumpで対象データベースのバックアップを作成し、S3バケットにsyncします。
[bash title=”backup.sh”]
#!/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
[/bash]
Cronにシェルスクリプトを登録
[bash gutter=”false”]
$ crontab -e
[/bash]
[text gutter=”false”]
0 3 * * * /path/to/backup.sh > /dev/null 2>&1
[/text]
以上で完了です。