どもども、ogimanです。
2月なのに気温が20度近くいったり、と思ったら次の週には10度以下になったりで体調が・・・
気圧のせいか毎朝全然おきれません〜おじさんにはツラミ
今日はAWSのS3バケットをまるっとダウンロード(アップロード)する方法を記載します。
コマンドに限らず技術全般で新しいインプットをすると、古い情報が玉突きのように記憶からなくなっていく!
コマンド覚えていられない症候群(記憶力がないだけw)に罹患しているのでメモっときます。
ご存知の方は時間が勿体ないのでここで離脱しましょうw
ゴール
- S3のバケットごとをダウンロードする
- ローカルのデータをS3にフォルダごとアップロードする
要件
以下の2つの要件がありましたとさ
- 複数のサービスが扱っているのですが、1つのサービスがクローズとなったため、S3のバックアップしておきたい
- と思ったら、その後にバックアップした一部のデータを他のAWSアカウントのサービスへ移植したい
実行例
S3のバケットごとをダウンロードする
# ディレクトリ作成(※1)
# mkdir "ローカルにディレクトリを作成"
mkdir backup.hoge
# バケット→ローカルへのダウンロード
# aws --profile "プロファイル名" s3 sync s3://"バケット名" "ローカルにディレクトリを作成"
# credentialの指定は忘れずに!defaultで設定している場合は指定不要(※2)
aws --profile ogiman s3 sync s3://backup.hoge ~/Downloads/backup.hoge
※1 バケット名もしくは任意のディレクトリを作成しましょう。さもないと、バケット配下のコンテンツがダウンロードされます。詳細は実行結果を参照ください
※2 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html#cli-configure-files-format-profile
S3のバケットごとをアップロードする
# バケット→ローカルへのアップロード
# aws --profile "プロファイル名" s3 sync ~/Downloads/"ローカルにディレクトリを作成" s3://"バケット名"
aws --profile ogiman s3 sync ~/Downloads/backup.hoge s3://backup.hoge
ダウンロードの失敗事例
[ogiman:~/Downloads] $ aws --profile ogiman s3 sync s3://backup.hoge ~/Downloads
download: s3://backup.hoge/wordpress/hoge
download: s3://backup.hoge/app/hoge
[ogiman:~/Downloads] $
[ogiman:~/Downloads] $ ls -l ~/Downloads (1)
drwxr-xr-x@ 4 ogiman staff 128 2 22 10:48 app
drwxr-xr-x@ 3 ogiman staff 96 2 22 10:48 wordpress
[ogiman:~/Downloads] $ mkdir backup.hoge (2)
[ogiman:~/Downloads] $ mv app backup.hoge (3)
[ogiman:~/Downloads] $ mv wordpress backup.hoge
[ogiman:~/Downloads] $
[ogiman:~/Downloads] $ ls -l backup.hoge
drwxr-xr-x@ 4 ogiman staff 128 2 22 10:48 app
drwxr-xr-x@ 3 ogiman staff 96 2 22 10:48 wordpress
- 指定したバケット「backup.hoge」がディレクトリとして出来る想定だったが、バケット配下のコンテンツのみが入っている
- せこせこと後からディレクトリを作成する・・・虚しい
- コンテンツを移動する・・・虚しい
つまり、cp(コピー)ではなく、あくまでも同期(sync)なのでディレクトリができなかったのでしょう。
補足
以下でもバケットのダウンロードできます。
--recursive
オプション付与するのが面倒だったのでsync
を試しました ⇐怠惰なエンジニアです。
aws --profile ogiman s3 cp s3://"バケット名" "ローカルにディレクトリを作成" --recursive
参考(感謝)
- https://docs.aws.amazon.com/cli/latest/reference/
- https://docs.aws.amazon.com/ja_jp/cli/v1/userguide/cli-services-s3-commands.html#using-s3-commands-managing-objects-sync
最後に
普段aws-cliを触ってますが、色々とAWSのリソースを操作できて便利ですね!
大量にコマンドあるので覚えるのは無理ゲーなので、公式ドキュメント見ながら、試してます。
皆さんもぜひお試しあれ〜
この記事が少しでも参考になったら、 お願いします!
励みになります♪
ではでは、良い一日を〜