バックアップに思いを馳せる日々...
精神が勝手に汚濁している毎日、
バックアップどうすりゃいいんだと考える毎日。
探してたらBakthatというものを見つけた。
指定したディレクトリを暗号化し、また
S3 or Glacierにバックアップする機能もついている。
bakthat インストール
まずは環境構築をしよう。
botoを利用しているので、環境はPython 2.x系じゃないといけない。
今回は2.7.5で動作確認をしている。
- (S3/Glacierを利用してバックアップするのにbotoを利用している。)
> mkdir -p ~/Sandbox/bakthat
> cd ~/Sandbox/bakthat
> virtualenv-2.7 .venv
> source ~/.venv/bin/activate
> easy_install bakthat
> rehash
S3へのバックアップを行なってみる
安くて安心なバックアップ先でクラウドで〜となるとS3しかない…
リージョン3つに跨ってバックアップとかS3してるし。
時間経てばGlacierに転送しちゃうみたいなのも可能だし。
AWS側の設定
AWS S3のAPI_KEY, API_SECRET_KEYについて必要なので用意しておく。
準備するにはAWS IAMでS3にバックアップするためのユーザーを作成して、
テスト用のユーザーを作成するのがオススメ。
作成方法については省く。(時間があればスクショ取ります)
bakthatの初期設定
以下のコマンドを打ち込むと、
対話状態になる。その時にAWS_KEY, API_SECRET_KEYを入力する。
またデフォルトのバックアップ先設定はS3向けにしとけばいいので
(S3バケットの設定でGlacierに飛ばすとかやればいいし)
そうしといた。
> bakthat configure
> AWS Access Key: XXXXXXXXXXXXXXXXXXXXXXXX
> AWS Secret Key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> S3 Bucket Name: bakthat-test
> Glacier Vault Name: bakthat-test
> Default destination (s3):
> Region Name (us-east-1): us-west-2
> Config written in /Users/matsuzakikeiji/.bakthat.yml
> Run bakthat configure_backups_rotation if needed.
bakthatによるバックアップテスト
バックアップ用のテストファイル作成
バックアップをテストしたいので、
テストに利用したいディレクトリを作成する。
> mkdir -p ~/Sandbox/bakthat/hoge
> cd ~/Sandbox/bakthat
作成したhogeディレクトリに適当なファイルを作成しよう。
> echo "こんにちは..." > hoge/poem.txt
ほいじゃバックアップ
以下のコマンドを打ち込むとバックアップが開始される。
その時、ファイルを暗号化するためのパスワード入力を促される。
> bakthat backup
バックアップされているか確認
AWS Management console上からバックアップされてるか確認してみる。
さっそくアクセス。
あった。バックアップされてる!よかった。
リストアに挑戦
バックアップに利用したhogeディレクトリを削除してリストアしてみよう。
> rm -rf hoge
その上で、bakthatによってリストアを試みる。
リストア時に、バックアップ時に入力した暗号化キーの
入力を促されるので入力する。
> bakthat restore hoge
リストアされてる!
ポエムもバッチリだ。
感想
似たツールにs3cmdがあるけど、
バックアップする先のバケットを一つに絞っておいて、あとは
適当にbakthat backup
コマンドを適当に打つだけなので個人的には
bakthatのがいいかな〜と思ってる。
細かいバックアップ調整(ディレクトリやら作成バケット名やらリージョン選択)とかしたければ、
botoやらaws-sdk-ruby使えばいいし。