AWS CLI童貞を卒業して大人になった話
こんにちは
金髪から黒髮になったLinaです。
黒髮になっても尚消えないサブカル感、、、、なぜだ、、、
僕は大人の女性になりたかっただけなのに。。。
と、余談はさておき、
今日はAWS CLIを使って、
本番環境に上がってるS3の画像データを開発環境へコピーしたお話をしたいと思います。
AWS CLIってなーに?
公式サイトには次のように書かれていました。
AWS コマンドラインインターフェイス (CLI) は、AWS サービスを管理するための統合ツールです。 ダウンロードおよび設定用の単一のツールのみを使用して、 コマンドラインから複数の AWS サービスを制御し、スクリプトを使用してこれらを自動化することができます。
なるほどー?わからん。
ってなったので、もう少し調べると、 エウレカ様のtechブログに、素敵な記事がありました。
aws-cliがあればこれらの作業を自動化できるので、人生が100億倍豊かになります(本文より抜粋)
S3のアップロード作業やコピー作業などをコンソールからポチポチしてたのを、 CLIを使うと瞬殺できるらしいです(しゅごい)
AWS CLI をインストールしてみよう
というわけでAWS CLIを使うメリットがわかったので、 早速インストールして見たいと思います。
インストールはとても簡単でした。 コマンドラインで下記を打つだけ。
$ sudo easy_install pip $ sudo pip install awscli
これでインストール完了。
初期設定をしてみよう
aws configure
と入力。そうすると、
AWS Access Key ID []: AWS Secret Access Key []: Default region name [ap-northeast-1]: Default output format [json]:
↑のようなものが表示されるので、必要情報を入力しましょう。
何入力したらいいかわからない!!(怒)という人はインフラ部隊の偉い人に聞いてみよう。
こちら入力したらセットアップは終了です。
S3の中身を別のバケットにコピーしよう
aws s3 sync s3://[コピー元のバケット名]/{{ objectPath }} s3://[コピーしたい先のバケット名]/{{ objectPath }} --region ap-northeast-1
と、これだけです。 動作確認したい場合は「–dryrun」してあげましょう。
aws s3 sync s3://[コピー元のバケット名]/{{ objectPath }} s3://[コピーしたい先のバケット名]/{{ objectPath }} --region ap-northeast-1 --dryrun
変なミスで詰まってしまったこと
なぜか、
aws s3 sync s3://[コピー元のバケット名]/{{ objectPath }}
を
aws s3 sync s3://buckets/[コピー元のバケット名]/{{ objectPath }}
と、S3://の後に//buckets/とつけてコピーしようとしてました。
当然403で怒られます。
/buckets/ はいらないので注意!!
以上です。
これで時間短縮できそうですね..!