迷えるIT子羊の忘備録

よろず屋Linaちゃんの忘備録

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/ はいらないので注意!!

以上です。
これで時間短縮できそうですね..!