aws-shellでaws-cliをより快適に触りつつドキュメント併用のハンズオンをも行う方法

aws-shellを利用したAWSハンズオンについて、及び実行履歴を元にしたaws-cli実行用のファイル作成手順についてまとめました。
2018.11.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSを使う上で色々と便利なコマンドが既に存在していますが、意外に知る機会が少ないことを実感しています。

Github上のawslabsを眺めていたところ、aws-shellの存在を発見し、aws-cliの存在からしてshellライクなものだと予感し、取り入れてみました。

インストール

pipを直接使う場合の手順です。

% sudo pip install aws-shell

pipenvを利用する場合は以下の通りになります。ここでは開発作業専用という前提で、dev指定しています。

% pipenv install --dev aws-shell

実行と終了

実行は以下の通りコマンドを打ちます。

# 実行
% aws-shell

あとはaws-cliと同じ感覚で入力します。

終了は.exitあるいは.quitと入力するか、F10を押します。

AWSアカウント指定を切り替える

aws-cliによるプロファイルが利用可能です。

% aws-shell --profile xxxx

プロファイルへの追記もaws-shellから可能です。

% aws-shell
aws> configure set profile.testing2.output json
aws> configure set profile.testing2.region ap-northeast-1
% cat ~/.aws/config
[profile testing2]
output = json
region = ap-northeast-1

ドキュメントを参照する

コマンドを入力時にF9でフォーカスがドキュメント側に切り替わります。上下でドキュメントの文字送りができます。コマンド側に戻す場合はもう一度F9を押します。

この操作による一番のメリットはドキュメントを参照しながらコマンドを打てるところだと思われます。

aws-cliとの併用

aws-shellにはシェル上にて実行したいパラメータを引数として渡すことができません。ですが、aws-shellで実行を確認した後に.editと入力することで、実行したコマンドがエディタ上に出力されます。それをファイルとして保存することにより、aws-cliを実行することが可能です。

% aws-shell
aws> s3 ls
aws> .edit

aws s3 ls 
:save $HOME/s3_ls.sh
"~/s3_ls.sh" [New] 1L, 10C written

% sh ~/s3_ls.sh

まとめ

aws-shellはコマンドの入力フォローが強力ですが、.editコマンド経由で保存することにて、一度実行したコマンド群をターミナル上から再実行することも容易になります。

aws-cliを利用してのハンズオンにおいても負担が大幅に下がると思われます。是非一度利用してみてください。