aws コマンド を v1 から v2 する機会があったのでメモ
環境
- EC2 Amazon/Linux
対応内容
※環境によって表示されるバージョンなど異なります
# 現在のバージョンの確認
$ aws --version
aws-cli/1.11.30 Python/2.7.18 Linux/4.14.177-107.254.amzn1.x86_64 botocore/1.12.172
# 更新
$ sudo yum update aws-cli
# バージョンの確認
$ aws --version
aws-cli/1.18.107 Python/2.7.18 Linux/4.14.177-107.254.amzn1.x86_64 botocore/1.12.172
# aws-cli コマンドの削除
$ sudo yum remove aws-cli
# バージョンの確認
$ aws --version
1)結果が表示されない場合は 【成功】 > 「v2 インストール」に進む
2)結果が表示された場合は 【失敗】 > pip コマンドがインストールされていれば以下を試す
$ which pip
$ sudo pip uninstall awscli
$ aws --version
結果が表示されなければ OK > 「v2 インストール」に進む
# v2 インストール
$ cd /tmp
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
1)以降の結果が以下の場合 【成功】
Found preexisting AWS CLI installation: /usr/local/aws-cli/v2/current. Please rerun install script with --update flag.
$ sudo ./aws/install --update
You can now run: /usr/local/bin/aws --version
$ /usr/local/bin/aws --version
aws-cli/2.7.25 Python/3.9.11 Linux/4.14.177-107.254.amzn1.x86_64 exe/x86_64.amzn.2018 prompt/off
2)以降の結果が以下の場合、コマンドの反映に失敗した可能性があるため次を対応
Found same AWS CLI version: /usr/local/aws-cli/v2/2.7.25. Skipping install.
$ ls -la /usr/local/bin/aws*
結果に「aws」や「aws_completer」が存在しない場合はリンクの作成に失敗していることが考えられる
その場合は手動でリンクをつなぐ
$ sudo ln -s /usr/local/aws-cli/v2/current/bin/aws /usr/local/bin/aws
$ sudo ln -s /usr/local/aws-cli/v2/current/bin/aws_completer /usr/local/bin/aws_completer
バージョンの確認
$ /usr/local/bin/aws --version
aws-cli/2.7.25 Python/3.9.11 Linux/4.14.177-107.254.amzn1.x86_64 exe/x86_64.amzn.2018 prompt/