dotcloud + S3 でバックアップのメモ

dotcloud で DB (MySQL) のバックアップを取らないとなーと思ってて、試したらすぐできた。


ドキュメントがすごい分かりやすい。

  • dotcloud では簡単なバックアップスクリプトを用意している
  • バックアップスクリプトMySQL, PostgreSQL, Riak (はじめて聞いた), data (通常のファイルを tar で固める) に対応していて、それぞれ FTP, SSH 経由でどこかのサーバへ送るかもしくは Amazon S3 へと送信することが可能


FTPSSH でもいいけど S3 をまだ使ったことなかったので使ってみる。
S3 でアカウントを取って、コンパネの使い方が分からなくて迷ってたけど、
My Account / Console -> Security Credentials で
Access Key ID と Secret Access Key を確認する。


あとはドキュメントの通りやっていけば何も迷わずできた。


cron の記述で、

dotcloud@ramen-default-sql-0:~$ crontab - <<EOF
MAILTO=""
$[$RANDOM%60] $[$RANDOM%24] * * * ~/backup.sh mysql ftp ramenbackups:chowmein@ftp.noodles.com 2>&1 | mail -s "Backup result for $HOSTNAME" cook@noodles.com
EOF


見たことない、$[$RANDOM%60] みたいな書き方があって、これはどういうことになるんだ、と思ったけど、
ちゃんと説明してあって、

Using the previous recipe, your backups will run once per day. To avoid everyone starting their backups at the same time, the recipe uses a little trick: the exact time of the backup will be randomly chosen when you create the crontab. Your backup will always be started at this same time, until you modify the crontab, of course.
If you want to check which time was scheduled for your backups, just do “crontab -l”. The minute and hour of the backups are the two numbers in front of the three asterisks.
If want your backups to occur at a fixed time, or at different frequencies, feel free to adapt the crontab.


ここに設定するタイミングで、ランダムで数字が決定されて、それによって、
cron の設定時間が集中することを避けることが目的のようだ。
feel free to adapt the crontab. とあって、もちろん自分で cron の時間は好きに設定できるんだけど、
提供側として、デフォルトの案内をランダムにしとく、という発想は面白いと思った。
僕もとりあえずランダムで出た数字のままにしといたけど、意外と効果あるのかもしれないなー。


あとはちゃんと送信できていて、S3 側で、保存期間を過ぎると自動削除することができるみたいなので
バックアップは完了。素晴らしいなー。(dotcloud も S3も)