Amazon S3にバックアップする。


IMGP4494



※写真と本文は関係ありません。


S3にバックアップを作成するアプリケーション(スクリプト)。

日本語の情報が多いのは s3sync.rb(http://s3sync.net/) というrubyのスクリプト(ちょっと古くて、もう開発されていない。『Tarsnapがいいよ』って書いてある。Tarsnapは前払いで$0.30 / GB-monthらしい。)
今のS3でも一応使える。(新しい機能は使えない。低冗長化は使えなかった)

s3tools の s3cmd というコマンド(python製)が新しいのでコレを使う。ファイルのUID,GID,だけじゃなくて元ファイルのタイムスタンプもS3のMetadataに保存される。

やりたいこと

  • ローカルにあるバックアップの遠隔地バックアップ。(バックアップサーバが通信を行うので時間は多少かかっても問題ない。20時間くらいまで)
  • S3の低冗長化ストレージ(Reduced Redundancy Storage)を使いたい。
  • 世代管理はしない。
  • SSLで通信経路暗号化
  • 出来るだけ安くしたい。

いくらくらいか計算しよう。

東京リージョンの価格

ストレージ料金表

スタンダードストレージ 低冗長化ストレージ
最初の 1 TB/月 $0.130 /GB $0.100 /GB

データ転送料金表

データ「アウト」(データ「イン」は無料)
最初の 1 GB/月 $0.000 /GB
10 TB まで/月 $0.201 /GB

詳細はhttp://aws.amazon.com/jp/s3/#pricing

500GBのデータを低冗長化ストレージに置くとして$0.1×500GB=$50/月

データ取り出すとすると$0.201×500GB=$100.5/回



あれ…ひょっとして結構高い?(は置いといて…)


今回のサーバはCentOS5なのでyumレポジトリを追加する方法でインストールする。(こちらを参考にhttp://s3tools.org/repositories

yum でインストールする。


cat /etc/yum.repos.d/s3tools.repo
# 
# Save this file to /etc/yum.repos.d on your system
# and run "yum install s3cmd"
# 
[s3tools]
name=Tools for managing Amazon S3 - Simple Storage Service (RHEL_5)
type=rpm-md
baseurl=http://s3tools.org/repo/RHEL_5/
gpgcheck=1
gpgkey=http://s3tools.org/repo/RHEL_5/repodata/repomd.xml.key
enabled=0



yum install --enablerepo s3tools s3cmd


アクセスキーなど設定する。


s3cmd --configure
Access key and Secret key are your identifiers for Amazon S3
…


$HOME/.s3cfg に設定が保存される。


s3cmd sync --verbose --recursive --delete-removed --reduced-redundancy /home/hoge/ s3://hoge-test/home-hoge/


こんな感じでrsyncっぽくバックアップ出来る。

–reduced-redundancy:低冗長化ストレージのオプション
–dry-run:テスト。(どのファイルが更新されるか表示されるけど実際にはなにもしない)