読者です 読者をやめる 読者になる 読者になる

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

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