##はじめに
AWS CLI バージョン2をインストールする方法について書きます。
AWS Linux2には初めからAWS CLI バージョン1があります。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ aws --version
aws-cli/1.18.107 Python/2.7.18 Linux/4.14.193-149.317.amzn2.x86_64 botocore/1.17.31
##手順
以下の2つを行います。
- AWS CLI バージョン2のインストール
- AWS CLI バージョン1の削除
##AWS CLI バージョン2のインストール
以下のコマンドでインストールファイルをダウンロードします。
curl
コマンドでインストーラをリクエストし、オプション -o "ファイル名"で指定したファイル名にリクエスト結果を書き込みます。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
ls
コマンドを使用してファイルが作成されたかを確認することできます。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ ls
awscliv2.zip
次に作成したzipファイルを、unzip
コマンドを使用して解凍します。
・・・は表示されるメッセージを省略しています。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ unzip awscliv2.zip
Archive: awscliv2.zip
creating: aws/
creating: aws/dist/
inflating: aws/README.md
・
・
・
解凍後は以下のようにawsディレクトリが作成されます。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ ls
aws awscliv2.zip
~/aws/install がインストールプログラムなので、管理者権限でこれを実行します。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo ./aws/install
You can now run: /usr/local/bin/aws --version
または以下のように実行すれば、環境変数の設定は必要ありません。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo ./aws/install -i /usr/local/aws-cli -b /usr/bin
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ aws --version
aws-cli/2.2.25 Python/3.8.8 Linux/4.14.238-182.422.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
インストールを確認します。
aws-cli/の後に、2が表示されていればバージョン2がインストールされています。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ /usr/local/bin/aws --version
aws-cli/2.0.52 Python/3.7.3 Linux/4.14.193-149.317.amzn2.x86_64 exe/x86_64.amzn.2
##AWS CLI バージョン1の削除
インストール直後は、/usr/local/bin/aws
のように絶対パスで指定しなければバージョン2が使用できない状態です。
相対パスaws
ではバージョン1が呼び出されます。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ aws --version
aws-cli/1.18.107 Python/2.7.18 Linux/4.14.193-149.317.amzn2.x86_64 botocore/1.17.31
バージョン1のaws
コマンドは相対パスで呼び出せるので、環境変数に入っています。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
以下のように~/usr/bin
にバージョン1が入っています。
ls
コマンドでディレクトリ内のディレクトリ・ファイルを表示し、grep '検索したい文字列' で検索したいディレクトリ・ファイルを表示させることができます。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ ls /usr/bin/ | grep 'aws'
aws
aws_completer
これらをrm
コマンドで削除します。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo rm -f /usr/bin/aws /usr/bin/aws_completer
これによりaws
コマンドは、/usr/local/bin/aws
を参照するようになります。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ aws --version
aws-cli/2.0.52 Python/3.7.3 Linux/4.14.193-149.317.amzn2.x86_64 exe/x86_64.amzn.2
もし、以下のメッセージが表示されるなら、パスが通っていません。
-bash: /usr/bin/aws: No such file or directory
その場合、以下のように追加します。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ export PATH=$PATH:/usr/local/bin
##参考記事
AWS 公式サイト
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-linux.html