Re:Invent2019で発表されていたAWS CLI V2 について触ってみました | SEEDS Creators' Blog | 株式会社シーズ

Re:Invent2019で発表されていたAWS CLI V2 について触ってみました

クラウド事業部の原口です。
今年は初めて AWS Re:Invent に参加する事ができました。
いろいろ書きたい事はあるのですがクリエイターズブログなのか?という事もあり、技術的なネタで、本日はAWS CLI v2 を触ってみたという内容となります。

ちなみにコネクションハブの OVERFLOW 枠で参加してました

AWS CLI v2の新機能をレビュー

インストール

インストールにpythonが必要がなくなり非常に簡単になりました!
MacOSやWindowsではインストーラーポチでよいようです。
ひとまずはAmazon Linuxにインストールしてみました

cd /usr/local/src
curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

現在はプレビューという事もあり aws2 というコマンドが追加されていてv1のawsコマンドと共存が可能なようです

設定が対話式で行えるようになりました

aws2 configure wizard というコマンドが追加され対話式で設定が可能となっていました

こういった対話式で設定を行うものは多数増やしていく、との事。対話式で行えるのはawsコマンドの設定だけではなく、各種コマンドについても増やしていく、との事。
例えばDynamoDBでテーブルを作る時は一生懸命ドキュメントを見ながら設定していましたが…

このように `aws2 dynamodb wizard new-table` とする事で対話式で新規テーブル作成が可能でした。便利

コマンド補完がすごくなっている

complete -C aws2_completer aws2

こちらでタブ補完を有効化したのちに以下のようにタブで補完される事が確認できました。こちらがアップデートされて、各種コマンドの引数はもちろんの事、なんとそのリソースの補完も行えるようになりました。
先程つくったdynamoDBのtestというテーブルを削除したい場合の動きです。

[root@ip-10-0-0-134 ~]# aws2 dynamodb delete-
delete-backup  delete-item    delete-table   

[root@ip-10-0-0-134 ~]# aws2 dynamodb delete-table --ta<TAB>
↓
[root@ip-10-0-0-134 ~]# aws2 dynamodb delete-table --table-name <TAB>
↓
[root@ip-10-0-0-134 ~]# aws2 dynamodb delete-table --table-name test 

わざわざ実際のリソースをlistで一覧してから確認したりする必要がないです!とてもすごいと思いました

AWS SSOとの連携

AWS CLI v2だけの機能としてAWS SSOとの連携が可能なようで試してみました。
AWS SSOについては「AWS SSOを使って複数AWSアカウントのログインを簡単にする!」で試してみましたのでこの環境にログインしてみたいと思います。

まずはaws2 configure sso コマンドでssoの設定を行います。
といっても SSOのstartページとSSOを設定しているリージョンを設定するだけです。

すると
https://device.sso.us-east-1.amazonaws.com/
へのアクセスをアクセスして、出力されているcodeを入力せよ、となります。

ここでブラウザで上記URLに接続するとcodeを記述する画面が出てきます。

CLI側で出力されているコードを入力し、ログインすると、「CLIでログインするか?」というポップアップが出てくるのでSignします。

するとCLI側はsingした瞬間にずらずらと動きだし、ログインできるAWSアカウントが一覧されます。こちらもインタラクティブモードで選択可能です。

ここでアカウントを選択すると、そのaws2コマンドはもうそのAWSアカウントの世界になっています。
一旦ブラウザを挟んでログインするとCLI側が動く、というのは新鮮でしたが、SSOログインと連携する事で余計なAWSシークレットキー/アクセスキーを出力する機会を減らせるかもしれないですね。

その他の追加項目

以下はさらっと試したレベルですが以下の内容が新規に追加されているようです

・出力にyamlが追加された
・Paging機能の追加。

正式発表が楽しみですね!