【AWS CloudShell】AWS CLI を最新版にアップデートする方法
はじめに
こんにちは、フニです。
本記事では、AWS CloudShell で AWS CLI を最新バージョンにアップデートする方法についてご紹介します。
何が嬉しい?
AWS CloudShell には AWS CLI がデフォルトでインストールされていますが、最新バージョンではない場合があります。
バージョンが古くて、以下のように API が認識できない場合、最新バージョンにアップデートすることで認識できるようになります。
aws: [ERROR]: argument operation: Found invalid choice '<API名>'
手順
バージョン確認
- AWS コンソール画面にログインし、AWS CloudShell を開きます。

- 最新バージョンとの差分をチェックします。現在バージョンと最新バージョンが異なる場合、アップデートを実施します。
current=$(aws --version 2>/dev/null | awk '{print $1}' | cut -d/ -f2) &&
latest=$(curl -s --max-time 5 https://api.github.com/repos/aws/aws-cli/tags | grep -m1 '"name"' | grep -oE '[0-9]+\.[0-9]+\.[0-9]+') &&
echo "現在バージョン:$current" &&
echo "最新バージョン:$latest"

パターン1:手動アップデート
以下のコマンドを入力します。画像のようにアップデート後のバージョンが出力されたら完了です。
echo "アップデート前" &&
aws --version &&
cd /tmp &&
curl -sS "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" &&
unzip -qo awscliv2.zip &&
sudo ./aws/install --update &&
echo "アップデート後" &&
aws --version

パターン2:自動アップデート
vi ~/.bash_profile
~/.bash_profile を開き、以下のコードを追加します。
current=$(aws --version 2>/dev/null | awk '{print $1}' | cut -d/ -f2)
latest=$(curl -s --max-time 5 https://api.github.com/repos/aws/aws-cli/tags | grep -m1 '"name"' | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
if [[ -n "$latest" && "$current" != "$latest" ]] ; then
{
cd /tmp &&
curl -sS "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" &&
unzip -qo awscliv2.zip &&
echo "~/.bash_profile の AWS CLI 自動アップデート設定により、アップデートを実施します。" &&
sudo ./aws/install --update &&
echo "AWS CLI の自動アップデートが完了しました。アップデート後のバージョンは以下です。" &&
sudo aws --version
}
fi
再起動すると、自動アップデートが実行されたことを確認できます。


さいごに
今回は、AWS CloudShell で AWS CLI を最新バージョンにアップデートする方法ついてご紹介しました。
私の場合、AWS の最新アップデート情報の記事を執筆する際に AWS CloudShell で動作検証をすることが多く、最新 AWS CLI API の場合は認識されない場合がありましたが、それが解決できるようになりました!
この記事が誰かの助けになれば幸いです。







