LoginSignup
15
12

More than 5 years have passed since last update.

S3のbucketを別のbucketにsyncしてバックアップする

Posted at

万が一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/
$
15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12