backup files to s3
Linux Server上のファイルを、AWSのs3上にbackupする。
1. s3のbucket作成
AWSのConsoleで、バックアップファイルを保存するbucketを作成する。 バックアップなので、任意のユーザのみアクセス可能とするため、以下のようなPolicy for Bucketを設定する。{ "Version": "2008-10-17", "Id": "Policy1399994224671", "Statement": [ { "Sid": "Stmt1399994210908", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AMIのユーザID:root" }, "Action": "s3:*", "Resource": "arn:aws:s3:::バケット名/*" } ] }
これで、「ユーザID」のAWS AMIユーザのみ、上記のバケットにアクセスできるようになる。
どういうことかというと、AWS Console経由か、AWS ACCESS KEYを利用したアクセスのみ、
「パケット名」の内容にアクセスできることになる。
2. s3cmd のsetup
Linuxで利用できるs3連携ツールは、amazon謹製のaws command toolでもいいが、 今回はs3cmdを利用してみる。まずは、s3cmd のinstall。% sudo apt-get install s3cmd
コンフィグレーションファイル($HOME/.s3cfg)の例は、こんな感じ。
[default] access_key = AMIのアクセスキー acl_public = False bucket_location = US debug_syncmatch = False default_mime_type = binary/octet-stream delete_removed = False dry_run = False encrypt = False force = False gpg_command = /usr/bin/gpg gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_passphrase = guess_mime_type = False human_readable_sizes = False preserve_attrs = True proxy_host = proxy_port = 0 recv_chunk = 4096 secret_key = jAMIのシークレットキー send_chunk = 4096 simpledb_host = sdb.amazonaws.com use_https = False verbosity = WARNING
3. s3cmd でsync
s3の状態を確かめるため、以下のようにコマンドを実行する。% s3cmd ls 2014-04-24 09:44 s3://aaaaaaa.jp 2014-05-12 04:54 s3://www.alpha.com 2014-04-27 22:55 s3://www.beta.jp 2014-05-13 14:10 s3://mybackups
例えば、s3://mybackups/20140513 というバケットに任意のディレクトリをバックアップするなら、
% s3cmd sync ./バックアップしたいディレクトリ s3://mybackups/20140513 ... ./バックアップしたいディレクトリ/help.html -> s3://mybackups/20140513/バックアップしたいディレクトリ/help.html/ [1573 of 1573] 6544 of 6544 100% in 0s 82.56 kB/s done Done. Uploaded 164454446 bytes in 314.9 seconds, 509.94 kB/s
アップロードしたファイル数、バイト数などが表示されれば、OK。