各サーバーのバックアップをAmazon Glacier(S3)に保存する環境を作った

AWSのS3も初使用。

GlacierはS3の約10分の1の価格で使えるデータストレージ。1G・1円/月くらい。
安価な代わりにデータの取り出しには数時間かかる。
バックアップ向け。

AWS コマンドライン インターフェイス

まずはコマンドラインでAWSを操作できるように環境を作る。

AWS コマンドラインインターフェイス | アマゾン ウェブ サービス(AWS 日本語)

Python 2.6.3 or later

python --version

Pythonのパッケージ管理ツール、pipを準備。
まずはダウンロード
get-pip.py

python get-pip.py

pipが使えるようになったらaws cliをインストール

pip install awscli

確認。

aws --version

awsコマンドを試す

まずはAWSの管理画面でS3を使いバケットという大きい単位の入れ物を作る。
また、IDとシークレットキーも取得し、下記コマンドで設定。

aws configure

これでawsコマンドが使えるようになる。

lsやcpやmvなど使い慣れたコマンドが使える。
こんな感じ。

aws ls s3://
aws ls s3://yourbucketname/
aws cp /home/username/test.txt s3://yourbucketname/test.txt
aws mv /home/username/test.txt s3://yourbucketname/test.txt

Glacierの設定

これはAWSの管理画面から。

バケット単位でもフォルダ単位でもできるけど
特定のバケットをGlacier専用に設定。
そのバケットに入ったらすぐにS3からGlacierに移すようにできる。
保存に関してはS3に保存するのと同じ。

cronでの処理

超手間取った。
コマンドで入力したら動くのにcronだとどうしても動かなかった。
原因はconfigファイルが参照できていなかったこと。

シェルスクリプト内に下記を書いたら動いた。
cronの実行ユーザーと合わせる。

export AWS_CONFIG_FILE=/home/username/.aws/config

例えばこんな感じ

export AWS_CONFIG_FILE=/home/username/.aws/config
scp username@servername":~/backup/hoge.gz /home/username/backup/hoge.gz
/usr/local/bin/aws s3 cp /home/username/backup/hoge.gz s3://yourbacketname/hoge.gz

Categories:

Tags:


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA