🌏

AWSのS3パケットをローカル(自分のPC)に一括コピーしてくる方法

に公開

プロジェクトを一旦Closeしたサービスがあり、いつでも復元できるようAWSのS3のデータを控えておくためにローカルに一旦落としてくることを実施したので、その方法を例も含めご紹介します。

今回の対応について

AWSのアカウント配下に自分用のIAMユーザーを作成して、その作成したユーザーのアクセスキーをローカルに記載しておくことで接続できるようになり、任意のコマンドを実行することでS3からローカルに保存することができました。

その手順について下記に方法を記載します。

①IAMユーザーを作成しS3関連の読み取りできるロールを付与

まず、アカウント配下に自分用のIAMユーザーを作成し、AdministratorやPowerUserなど(S3関連の読み取りできる)ロールをアタッチします。

※既に利用可能なIAMユーザーが存在する場合はこの手順をスキップしても大丈夫です。

今回はAdministratorで作成します。

ユーザー作成

AdministratorAcessのグループ作成

今回は一番上の「AdministratorAcess」で作成します。

作成が完了

「アクセスキーID」と「シークレットアクセスキー」を控えておきます。

②ローカルに1の接続するために必要な情報を記述する

~/.aws/credentialsに1. で控えておいた「アクセスキー ID」と「シークレットアクセスキー」の情報を書きます。

vimとかで書き換えてもらって

vim ~/.aws/credentials

下記のように記載する感じです。

[sample]
aws_access_key_id=[アクセスキー ID]
aws_secret_access_key=[シークレットアクセスキー]
region=ap-northeast-1

③S3の指定したところからローカルにコピーする

AWS CLIのs3 syncコマンドを利用してローカルにコピーしてきます。
そこでは、実行時のprofileオプションで3で設定したprofileを指定します。

aws s3 sync --profile sample s3://[バケット名] [ローカルファイルのディレクトリ]

例えば、「sample-packet」というパケットを保存したいと思ったら

①S3にあるパケットを確認する

②AWS CLIのs3 syncコマンドの実行

aws s3 sync --profile sample s3://sample-packet ./

こんな感じでコピーされていきます

これでパケットごとにコピーすることができました。
他に必要なパケットがあれば同様に実行すればOKです。

まとめ

今回は、AWSのS3パケットをローカル(自分のPC)に一括コピーしてくる方法をご紹介しました。
特に難しいことはなく以外と簡単に行うことができました。
今回はS3→ローカルでしたが、応用することによってローカル→S3やS3内の別パケットに移動などもできたりするので調べてみてください。

参考

  • AWS CLI の開始方法

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-getting-started.html

  • S3のバケットをローカルに一括コピーする

https://taker.hatenablog.com/entry/2017/07/23/213349

GitHubで編集を提案

Discussion