LoginSignup
67
58

More than 5 years have passed since last update.

awscliのs3 syncコマンドを使ってAmazon S3にデータをバックアップ

Last updated at Posted at 2014-07-28

AWSのサービスをコンソールから操作するための、awscliというツールがあります。
このツールのコマンドの一つ、aws s3 syncを使うと、rsyncのようにファイルをS3にバックアップできます。
バックアップしたファイルはaws s3 syncで復元することも可能です。

この記事はバックアップ先となるS3のBucketを作るところから、aws s3 syncを使ってバックアップするまでの手順を説明します。

プライベートBucket作る

Amazon Management ConsoleのS3管理ページから、Create Bucketを選ぶ。

S3 Management Console.png

好きな名前を入力してCreate
S3 Management Console-2.jpg

Bucketは、デフォルトでは非公開になってて、Bucketを作ったユーザのみがアクセスできるようになってる。

IAMにバックアップ用ユーザ作る

Amazon Management ConsoleのIAM管理ページから、ユーザを追加する。
IAM Management Console.jpg

ユーザのアクセスキーは、アカウントを作った時しかダウンロード出来ない。情報を控えておくこと。
次に作成したユーザに、Bucketにアップロードする権限を付与する。バックアップに使うだけなので、指定したBucket以外にはアクセスできないように制限する。
ユーザの一覧画面で、作ったユーザを選択し、画面下のPermissionsタブを開いて、Attach User Policyボタンをクリック。
開いたダイアログのPolicy Generatorにチェックして、Selectボタンをクリックしてポリシー作成画面に進む。以下の権限を付与。
IAM Management Console.jpg

  • AWS ServiceからAmazon S3を選択
  • ActionsからAll Actions(*) をクリックしてから、DeleteBucket, DeleteBucketPolicy, DeleteBucketWebsite を削除。
  • Amazon Resource Nameに、arn:aws:s3:::[バケット名] , arn:aws:s3:::[バケット名]/* をセット。continueするとpolicyのxmlが見れるので、Resourceにこの2つがセットされてることを確認する。
  • Add Statementを押して権限付与

awscliをインストール

pip install awscli 実行すればインストールできる。pythonインストールされてればたぶんpipコマンドが使える。
その後、aws configure を実行して、access_keyを設定する。

ここまでできたら設定、権限が正しくセットされているか、aws s3 ls コマンドを使って検証してみる。

  • aws s3 ls s3://[Bucket名]/ を実行。エラーが起きないことを確認する。(バケットを操作できる権限の確認)
  • aws s3 ls を実行。AccessDeniedになることを確認する。(他のバケットは見れないことの確認)

aws s3 sync を使ってバックアップする

バックアップの実行は簡単で、
aws s3 sync /path/to/backup/ s3://[Bucket名]/
を実行すれば、/path/to/backup/ ディレクトリ以下のファイルをすべてバックアップしてくれる。

S3にあるデータをローカルにダウンロードするとき

aws s3 sync の引数を逆にすれば、S3にバックアップしたデータをローカルにダウンロードできる。

aws s3 sync s3://[Bucket名]/ /path/to/sync/

以上です。

67
58
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
67
58