先日 re:Invent で AWS の新サービス AWS CloudShell が発表されました。マネジメントコンソール上で AWS CLI を利用できるサービスです。今回は、 CloudShell 上で AWS CLI v1 を使えるようにしてみます。小ネタです。

目次

概要

AWS CloudShell 上で AWS CLI v1 を使えるようにします。デフォルトでインストールされているのは AWS CLI v2 です。

AWS CloudShell 自体のサービス概要についてはクラメソさんの記事でわかりやすくまとめられています。いつも最速のブログ化ありがとうございます!

待望の新サービス AWS CloudShell がリリースされました! #reinvent | Developers.IO

やってみる

では、やっていきます。

デフォルトのバージョン確認

まずは CloudShell のデフォルトの AWS CLI バージョンを確認してみます。

[cloudshell-user@ip-10-0-40-46 ~]$ aws --version
aws-cli/2.0.58 Python/3.7.3 Linux/4.14.209-160.335.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2

2.0.58 がインストールされています。なお、この記事を書いている 2020/12/17 時点での AWS CLI v2 の最新バージョンは 2.1.11 なので、少しラグがあるようです。

AWS CLI v1 用の環境を作成

v1 を使えるようにするために、 Python の venv モジュールを使って仮想環境を作成します。CloudShell ではデフォルトで Python 3 系が使えるようになっているので、インストールは不要です。

[cloudshell-user@ip-10-0-40-46 ~]$ python3 -V
Python 3.7.9

今回は aws-cli-v1 という環境を作ります。

[cloudshell-user@ip-10-0-40-46 ~]$ python3 -m venv ~/aws-cli-v1

作成した環境に入ります。環境に入ると、プロンプトに (aws-cli-v1) が表示されます。

[cloudshell-user@ip-10-0-40-46 ~]$ source ~/aws-cli-v1/bin/activate
(aws-cli-v1) [cloudshell-user@ip-10-0-40-46 ~]$

AWS CLI v1 をインストール

最後に AWS CLI v1 を pip でインストールします。

(aws-cli-v1) [cloudshell-user@ip-10-0-40-46 ~]$ pip install awscli --upgrade

...
Successfully installed PyYAML-5.3.1 awscli-1.18.198 botocore-1.19.38 colorama-0.4.3 docutils-0.15.2 jmespath-0.10.0 pyasn1-0.4.8 python-dateutil-2.8.1 rsa-4.5 s3transfer-0.3.3 six-1.15.0 urllib3-1.26.2

バージョンを確認します。

(aws-cli-v1) [cloudshell-user@ip-10-0-40-46 ~]$ aws --version
aws-cli/1.18.198 Python/3.7.9 Linux/4.14.209-160.335.amzn2.x86_64 exec-env/CloudShell botocore/1.19.38

v2 を利用したい場合は deactivate で環境から抜けます。

(aws-cli-v1) [cloudshell-user@ip-10-0-40-46 ~]$ deactivate
[cloudshell-user@ip-10-0-40-46 ~]$ aws --version
aws-cli/2.0.58 Python/3.7.3 Linux/4.14.209-160.335.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2

まとめ

AWS CloudShell 上で AWS CLI v1 を使えるようにした話でした。ま、他の環境で v1/v2 を切り替える方法と同じですね。

おまけ

デフォルトでインストールされている AWS CLI v2 を最新バージョンにするには下記のコマンドを実行します。

[cloudshell-user@ip-10-0-40-46 ~]$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \
&& unzip awscliv2.zip \
&& sudo ./aws/install --update \
&& rm -rf awscliv2.zip

途中で

replace aws/README.md? [y]es, [n]o, [A]ll, [N]one, [r]ename: 

と聞かれた場合は A で進みます。

実行が終わったらバージョンを確認します。

[cloudshell-user@ip-10-0-40-46 ~]$ aws --version
aws-cli/2.1.11 Python/3.7.3 Linux/4.14.209-160.335.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2 prompt/off

以上、よっしー (michimani) でした。
Share to ...
0
Follow on Feedly