万が一bucketをヒューマンエラーなどで消失してしまった場合のために
bucketを別のbucketにコピーする方法を確認した。
バックアップ用のbucketはLifecycleを0day
にして
Glacierに保存しておくようにすれば良いかと思う。
- S3 にファイルをアップロード
$ aws s3 cp --acl private --sse file-one.txt s3://kenjiskywalker-one/foo/
upload: ./file-one.txt to s3://kenjiskywalker-one/foo/file-one.txt
$
$ aws s3 sync --dryrun s3://kenjiskywalker-one/foo/ s3://kenjiskywalker-two/foo/
(dryrun) copy: s3://kenjiskywalker-one/foo/file-one.txt to s3://kenjiskywalker-two/foo/file-one.txt
$
$ aws s3 cp --acl private --sse file-two.txt s3://kenjiskywalker-one/foo/
upload: ./file-two.txt to s3://kenjiskywalker-one/foo/file-two.txt
$
- S3 のバケット同士を sync
$ aws s3 sync --acl private --sse --dryrun s3://kenjiskywalker-one/foo/ s3://kenjiskywalker-two/foo/
(dryrun) copy: s3://kenjiskywalker-one/foo/file-two.txt to s3://kenjiskywalker-two/foo/file-two.txt
(dryrun) copy: s3://kenjiskywalker-one/foo/file-one.txt to s3://kenjiskywalker-two/foo/file-one.txt
$
$ aws s3 sync --acl private --sse s3://kenjiskywalker-one/foo/ s3://kenjiskywalker-two/foo/
copy: s3://kenjiskywalker-one/foo/file-one.txt to s3://kenjiskywalker-two/foo/file-one.txt
copy: s3://kenjiskywalker-one/foo/file-two.txt to s3://kenjiskywalker-two/foo/file-two.txt
$
$ aws s3 ls s3://kenjiskywalker-one/foo/
2014-07-26 15:57:17 0 file-one.txt
2014-07-26 15:57:43 0 file-two.txt
$
$ aws s3 ls s3://kenjiskywalker-two/foo/
2014-07-26 15:58:00 0 file-one.txt
2014-07-26 15:58:01 0 file-two.txt
$
-
--delete
オプションの確認
$ aws s3 rm s3://kenjiskywalker-one/foo/file-one.txt
delete: s3://kenjiskywalker-one/foo/file-one.txt
$
$ aws s3 ls s3://kenjiskywalker-one/foo/
2014-07-26 15:57:43 0 file-two.txt
$
$ aws s3 ls s3://kenjiskywalker-two/foo/
2014-07-26 16:00:45 0 file-one.txt
2014-07-26 15:58:01 0 file-two.txt
$
$ aws s3 sync --acl private --sse --delete --dryrun s3://kenjiskywalker-one/foo/ s3://kenjiskywalker-two/foo/
(dryrun) delete: s3://kenjiskywalker-two/foo/file-one.txt
$
$ aws s3 sync --acl private --sse --delete s3://kenjiskywalker-one/foo/ s3://kenjiskywalker-two/foo/
delete: s3://kenjiskywalker-two/foo/file-one.txt
$
$ aws s3 ls s3://kenjiskywalker-one/foo/
2014-07-26 15:57:43 0 file-two.txt
$
$ aws s3 ls s3://kenjiskywalker-two/foo/
2014-07-26 15:58:01 0 file-two.txt
$
-
--delete
オプションなしの確認
$ aws s3 ls s3://kenjiskywalker-one/foo/
2014-07-26 15:57:43 0 file-two.txt
$ aws s3 ls s3://kenjiskywalker-two/foo/
2014-07-26 16:30:36 0 file-one.txt
2014-07-26 15:58:01 0 file-two.txt
$
$ aws s3 sync --acl private --sse --dryrun s3://kenjiskywalker-one/foo/ s3://kenjiskywalker-two/foo/
$