[レポート] 新機能も続々!AWS CLI v2の紹介 #reinvent

re:Invent2019のセッション、「DOP343-R1OFA - [OVERFLOW] [REPEAT 1] Introduction to the AWS CLI v2 (Teal-Aria)」のレポートです。
2019.12.06

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

こんにちは。AWS事業本部のShirotaです。

いつもの挨拶を省いてお届けしているのは、re:Invent2019のセッションレポートについて速攻でお届けしようと思っているからです!
今回はセッション、「Introduction to the AWS CLI v2」についての内容をお届けしたいと思います。

それでは早速行ってみましょう!

セッション情報

セッション名

DOP343-R1OFA - [OVERFLOW] [REPEAT 1] Introduction to the AWS CLI v2 (Teal-Aria)

今re:Invent初のオーバーフロー会場に行ってきました!
セッションは聴きたいけど他のセッションとの兼ね合いでメイン会場に行けない、そんな時にオススメです。
今回は「Aria」の「Teal(鴨の羽色という意味らしい。そこまで緑っぽさは感じなかったが)」でセッションを聴きました。

▲ 後ろの充電しながら聞ける席や、前にはゆったり聴ける席が。結構埋まっていたのでお早めに

セッションの概要

The AWS Command Line Interface (AWS CLI) is a command-line tool for interacting with AWS services and managing your AWS resources. We've taken all of the lessons learned from AWS CLI v1 (launched in 2013), and have been working on AWS CLI v2—the next major version of the AWS CLI—for the past year. AWS CLI v2 includes features such as improved installation mechanisms, a better getting-started experience, interactive workflows for resource management, and new high-level commands. Come hear from the core developers of the AWS CLI about how to upgrade and start using AWS CLI v2 today.

2013年にローンチされたAWS CLI v1から6年、次のメジャーバージョンとして遂に発表された AWS CLI v2
実際にどのようになったのかが、このセッションで聞けるのが楽しみです。

スピーカー

  • James Saryerwinnie - Senior Software Engineer, Amazon Web Services
  • Kyle Knapp - Software Development Engineer, Amazon Web Services

セッションの内容

  • AWS CLIの説明
    • AWS CLIコマンドのサンプル
      • コマンドの構成の説明
  • AWS CLI v2の説明
    • 次のメジャーバージョン
    • 今はdeveloperプレビュー
    • AWS CLI v1との互換もある
    • 新機能あり
  • AWS CLI v2のハイライト
    • インストールと設定
    • Command I/O
    • インタラクティブ機能

インストールと設定

  • 実行可能なインストーラ(MacOS、Linux)
  • MSIインストーラー(Windows)
  • Pythonがなくてもインストールできるようになった!
    • インストールが自己完結型に
  • developerプレビューの現在、実行時の名前は aws2
    • AWS CLI v1もv2も使えるように
  • 設定のコマンド
    • aws2 configure
    • aws2 configure wizard(v2で新規追加)

ここでJames Saryerwinnieさんがデモを実施してくれました。

  • 実際にインストールのデモ
    • EC2インスタンスにzipファイルをダウンロードしてインストール
    • EC2にロールをアタッチしてあったのでにconfigureがセットアップされている
    • aws2 configure wizard
      • 対話式かつ補完式になっている!
  • AWS CLIのクレデンシャルソース
    • 環境変数: export AWS_ACCESS_KEY_ID=...
    • 設定ファイル
      • ~/.aws/credentials
      • ~/.aws/config
    • AWSサービス
      • EC2のMetadata
      • ECSのcontainer credentials
  • 一時的に開発環境のクレデンシャルを使いたい!
    • AWS Single Sign-On(SSO)
      • AWS Organizationsとの連携も可能

▲ SSOを使う時の流れ

  • aws2 configure sso
  • aws2 sso login
  • aws2 sso logout
    • 実際の利用例

▲ アクセストークンを払い出して使う

これも、James Saryerwinnieさんがデモを実施してくれました。

インストールと設定の振り返りをして、次へ。

Command I/O

  • AWSリソースを完結できる
  • AWS resource compretion
    • complete -C aws2_completer aws2
    • aws2 dy: dynamodb,dynamodbstreamsがタブ補完される
    • タブ補完がオペレーションにもパラメータにも効く!
  • YAML形式をサポート
    • aws2 dynamodb lsit-tables --output yaml
    • yamlでテーブル名がでる
    • アウトプット形式としてtable、textもサポート
  • ページング機能の改善
    • ストリーミングレスポンス
    • ページャーのアウトプット
      • aws ec2 describe-snapshotsを実行
        • 大量のJSONでスクロールが大変
      • aws2 ec2 describe-snapshots --output yaml-stream
        • yamlで表示できるようになり、負荷を減らせるように!
      • ストリームアウトプットができる

ここからはJames Saryerwinnieさんのデモに。

▲ 今まではjsonをファイルに保存して整形していたのがyaml-inputでyamlに!

  • configureでアウトプットをyamlに設定しておくと、明示しなくてもyamlでアウトプットされる

インタラクティブ機能

  • CLIのコマンド、めちゃめちゃ多い
    • 200+のトップレベルのコマンド
    • 総計6000+のコマンド
    • 総計37000+のパラメータ
  • どうやって探す?
    • 今まではネットで検索して、リファレンスを読んでいたと思う
    • 早速のデモ
      • aws2 dynamodb wizard new-table
      • 対話形式で使いたいコマンドを教えてくれる!
      • -cli-auto-prompt
        • 実行したかったコマンドを対話式で会話しながら生成してくれる!

おさらい

  • AWS CLI v2は現在developerプレビュー
  • インストーラーをダウンロードして、実際に使ってフィードバックしてね!
  • AWS SSOをサポートしたよ
  • Command I/Oを改善したよ
  • ウィザードやインタラクティブなプロンプトがあるよ

次に読むドキュメントの案内

AWS CLI v2 user guide

AWS CLI v2 feature requests

AWS CLI v2 blog posts

便利な新機能がチラホラあり、今後に期待大!

YAML形式の出力がサポートされたり、コマンドの補完機能がマシマシになったり 、デモでスマートに動くAWS CLI v2を見ていて思わずワクワクしてしまいました!
早速自分の環境にも導入して、色々と試してみたいと思いました。
もちろん、使ってのフィードバックも忘れずに!