AmazonS3が安すぎるのでデータバックアップ置き場にした

NE MU I ですこにゃちわ。

先日、このブログや他のシステムのサーバー引っ越しを行いました。
で、作業ついでにバックアップもとりたいなーと考えた(今まで取ってなかった←!)。

バックアップの保存先どこにすんべか…と考えて色々調べたところ、AmazonS3いいんじゃね?という結論になりました。だってめちゃ安いし。

最初の1TB/月まで1GBあたり$0.125、低冗長化ストレージなら$0.093/GB。アップロードだけなら転送量無料。お小遣いで十分すぎるほどまかなえるお値段。
※もっと詳しい情報はココみてくだし。


S3使うと決めたし、次はファイルを転送するツールを選ぶ。ちょっと検索したところ、s3syncいいんじゃね?と思って試したけど、S3のバケットに変なゴミファイルができちゃって駄目デシタ。なんかこれで作られたゴミファイル、何しても消えないんですがΣ( ゚Д゚ )

んで。
最終的にs3cmdを使うことにしました。CentOSならepelリポジトリ追加すればすぐ入ります。
$ sudo yum install s3cmd
楽。使い方はざっとこんなん↓

初期設定。アクセスキーとかシークレットキーとか設定する
$ s3cmd –configure

ファイル一覧を見る
$ s3cmd ls s3://バケット名

ファイル保存
$ s3cmd put hoge.txt s3://バケット名/hoge.txt

ファイル削除
$ s3cmd del s3://バケット名/hoge.txt

うん、操作が簡単なのがいいですね(・∀・)

で、Cronで実行するスクリプトがこちら。
バックアップは /var/backup 以下に置くとします。
[shell]
#!/bin/sh

# おまじない。こいつが無いとたまに怒られたりする
export AWS_CALLING_FORMAT="SUBDOMAIN"

# 日付
date=`date ‘+%d’`;
# 日付下1桁を使って、10世代だけバックアップする
id=`echo $date | cut -c 2`;

# てきとーにログファイルも作る
echo ‘##### BACKUP START #####’ >> /var/backup/log/$date.log

# WPバックアップ
# ファイル一式
tar zcvf /var/backup/wp/files/wp.$id.tar.gz /var/www/html;
# DBも適当に。
mysqldump -u mysqluser -phogehoge wordpress_db | gzip > /var/backup/wp/db/$id.wp.mysqldump.gz;
echo ‘WP DUMP DONE’ >> /var/backup/log/$date.log

# S3へ転送
# 低価格バージョンは -rr をつければいいらしい
s3cmd put -rr –recursive /var/backup s3://バケット名
echo ‘SEND TO S3 DONE’ >> /var/backup/log/$date.log

# ため込むのもアレだし、バックアップ終わったら消しちゃう
find /var/backup -name ‘*.gz’ -exec rm -rf {} \;
echo ‘===== BACKUP END =====’ >> /var/backup/log/$date.log
[/shell]

こいつをCronで適当な時間に回せばOK。これで突発的にサーバークラッシュしても大丈夫…かな(・∀・)

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください