AWS CLI v2のインストールはどれくらい楽になりそうなのかを調べてみた #reinvent

「Pythonの事前インストールが不要」との「AWS CLI v2」。実際、それがAWS内環境でどれだけ有難い事なのかが気になったので、AWS CLI v2を現在サポートしている環境のPythonやpipの状況を調べてみました。
2019.12.11

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

無事ラスベガスから帰ってきた訳ですが、まだまだ現地での熱気が冷めやらない内に情報をお届けしていきたいと思います!

新しいAWS CLI v2のプレビューが試せます

以前、AWS CLI v2がdeveloperプレビューになっている事についてはre:Inventでのセッションのレポートでお話し致しました。

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

その際に、以下のように紹介させて頂きました。

  • Pythonがなくてもインストールできるようになった!

今回AWS CLI v2を触るに当たって、今までのAWS CLI(v1)と今回のv2でどのようにインストールが異なっているのかを調べる機会がありましたのでまとめてみたいと思います。

今までのAWS CLI( v1 )のインストール方法について

AWS CLI(v1)のインストール方法は、大きく分けて二種類ありました。

  • バンドルされたインストーラ(Linux、MacOS、その他UNIX)やMSIインストーラ(Windows)を使ってインストール
  • Pythonとpipをインストールした上でpipを使ってインストール

ただ、どちらのやり方でも事前にPythonのインストール及び指定されたバージョンである事という条件があり、Pythonの初期導入や既に導入している環境の場合はバージョンの差異が影響してくるといった若干の導入前のステップが存在していました。
来年のPythonのサポート期限等で色々対応した方もいるのでは無いでしょうか。

今あるAWS CLI v2のインストール方法について

さて、現在プレビューとなっているAWS CLI v2のインストール方法についてですが、公式ガイドには以下のように記されています。

AWS CLI バージョン 2 は、バンドルされたインストーラとしてのみインストールできます。一部のパッケージマネージャーで見つけることができるかもしれませんが、AWS によって作成または管理されていないため、公式ではなく、AWS でサポートされていません。このガイドに記載されている公式の AWS ディストリビューションポイントからのみ AWS CLI をインストールすることを推奨します。

AWS CLI のインストール

公式ガイド内に記載されているインストーラのみが公式のものだと明言されたものであるのでそこからインストールしてね、との事のようです。
現状はパッケージマネージャーからのインストールは提供されていないようなので、インストール方法としてはこれのみになりそうです。

EC2環境のPython事情を調べてみる

Python依存が無くなって楽になる!……という事を述べてきたのですが、現状のEC2環境はどうなっているのでしょうか。
今回、上記公式ガイドにAWS CLI v2のサポートありとの記載があり、AWSから提供されているAMIがあった以下のOSについて調べてみる事にしました。

  • Amazon Linux 2(ami-068a6cefc24c301d2)
  • Amazon Linux 1(ami-0ab3e16f9c414dee7)
  • Ubuntu 18.04(ami-0cd744adeca97abb1)

Amazon Linux 2 と Amazon Linux 1

そもそも、Amazon LinuxにはAWS CLI v1がプレインストールされています。
よって、Pythonは既にインストールされています。

$ aws --version  
aws-cli/1.16.102 Python/2.7.16 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.12.92

ただ、確認したところ Amazon Linux 2にはpipがインストールされていませんでした
逆にAmazon Linux 1にはpipがインストールされています。

$ which pip
/usr/bin/which: no pip in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin)

最新版のAWS CLI v1をアップデートする際にはpip(もしくはpip3)が必要になる為、Amazon Linux 2では最終的に自力でpip(もしくはpip3)をセットアップする必要が生じます。

Ubuntu 18.04

Ubuntuは、AWS CLI v1がデフォルトでインストールされていません。
Pythonについては以下のようになっていました。

$ python --version

Command 'python' not found, but can be installed with:

sudo apt install python3
sudo apt install python
sudo apt install python-minimal

You also have python3 installed, you can run 'python3' instead.

$ python3 --version
Python 3.6.8
$ pip3

Command 'pip3' not found, but can be installed with:

sudo apt install python3-pip

デフォルトでPython3.6.8が入っていました。また、pip3は入っていませんでしたがaptからインストールできるようです。

AWS CLI v2のインストールが楽になるかどうかについて

さて、ここまでのAWS CLI v2サポート予定のOSの一部を見てきましたがPythonが事前に入っている環境が多いと感じました。
また、pipは入っていない場合が多い為、結局のところ最新のAWS CLI v1を使う際にはpipをダウンロードするといった行程が入る事なども考えると、 AWS CLI v2のインストールは以前のバージョンと比べて少し楽になったのではないかと思われます

今後も、実際にAWS CLI v2をインストールして触っていく中で、その良さが分かるようになってくれば良いのではないでしょうか。