
Amazon SageMaker StudioのTerminal上のAWS CLIを最新のバージョン2にアップデートしてみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
Amazon SageMaker StudioのSystem terminalで、AWS CLIを利用する場合、デフォルトでは、CLIバージョン1です。

Amazon EC2 インスタンスもCLIをバージョン2にアップデートしたことはありましたが、勝手が異なり色々詰まりましたので、今回方法をまとめました。
最新バージョンをインストール
System terminalを起動します。

$ aws --version aws-cli/1.27.141 Python/3.9.15 Linux/4.14.314-237.533.amzn2.x86_64 botocore/1.29.141
現在は、CLIバージョン1と分かります。
デフォルトですとunzipコマンドが使えないため、インストールします。
$ pwd /home/sagemaker-user $ sudo yum install -y unzip
CLIバージョン2の最新パッケージをダウンロードします。ダウンロードに数分かかります。
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" $ unzip awscliv2.zip replace aws/THIRD_PARTY_LICENSES? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
インストールを実行すると、/usr/local/aws-cliディレクトリが作成できないとエラーが出ますので、ディレクトリを先に作成します。
$ ./aws/install --update mkdir: cannot create directory ‘/usr/local/aws-cli’: Permission denied $ sudo mkdir /usr/local/aws-cli $ ls -la /usr/local/aws-cli total 0 drwxr-xr-x 2 root root 6 Jul 16 02:23 . drwxr-xr-x 1 root root 21 Jul 16 02:23 ..
/usr/local/aws-cliディレクトリの権限を変えます
$ sudo chown -hR sagemaker-user:root /usr/local/aws-cli $ sudo chmod 775 /usr/local/aws-cli $ ls -la /usr/local/aws-cli total 0 drwxrwxr-x 2 sagemaker-user root 6 Jul 16 02:23 . drwxr-xr-x 1 root root 21 Jul 16 02:23
which コマンドを使用して、awsコマンドのフルパスを確認します。
$ aws --version aws-cli/1.27.141 Python/3.9.15 Linux/4.14.314-237.533.amzn2.x86_64 botocore/1.29.141 $ which aws /opt/conda/bin/aws $ ls -la /opt/conda/bin/aws -rwxrwxr-x 1 sagemaker-user users 820 Jul 14 08:04 /opt/conda/bin/aws
インストールコマンドは、./aws/installです。
インストールコマンドを実行するとデフォルトで、すべてのファイルが/usr/local/aws-cliにインストールされます。
./aws/installコマンドのオプションは、以下です。
--install-dirまたは-i- すべてのファイルのコピー先のディレクトリを指定します。
- デフォルトは
/usr/local/aws-cliですので、指定しなくてもよいです。
--bin-dirまたは-b- フルパスを指定しなくてもawsコマンドが実行できるよう、awsファイルのシンボリックリンクを指定します。
- 指定したディレクトリへの書き込み権限が必要です。
- パスにすでに存在するディレクトリへのシンボリックリンクを作成すると、インストールディレクトリをユーザーの
$PATH変数に追加する必要はありません --bin-dirを指定するためのパスの確認は、which awsコマンドで確認できます。- デフォルト値は
/usr/local/binですので、指定する必要があります。
$ ./aws/install --bin-dir /opt/conda/bin --install-dir /usr/local/aws-cli --update You can now run: /opt/conda/bin/aws --version $ /usr/local/aws-cli/v2/2.13.1/bin/aws --version aws-cli/2.13.1 Python/3.11.4 Linux/4.14.314-237.533.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off $ /opt/conda/bin/aws --version aws-cli/2.13.1 Python/3.11.4 Linux/4.14.314-237.533.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off $ aws --version aws-cli/2.13.1 Python/3.11.4 Linux/4.14.314-238.539.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off $ ls -la /opt/conda/bin/aws lrwxrwxrwx 1 sagemaker-user users 37 Jul 16 08:04 /opt/conda/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws
CLIの最新2バージョンがインストールできました!
コマンドも利用できることが確認できました。
$ aws sagemaker describe-domain --domain-id ドメインID
{
"DomainArn": "arn:aws:sagemaker:ap-northeast-1:アカウントID:domain/ドメインID",
ダウングレードする方法
CLIのバージョンを2.0.30にダウングレードする方法を紹介します。
$ pwd /home/sagemaker-user
CLIのバージョン2.0.30をダウンロードします。
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip" $ unzip awscliv2.zip Archive: awscliv2.zip replace aws/README.md? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
インストールし、awsコマンドのバージョンを`2.0.30に変えます。バージョンが変わったことを確認します。
$ ./aws/install --bin-dir /opt/conda/bin --install-dir /usr/local/aws-cli --update You can now run: /opt/conda/bin/aws --version $ aws --version aws-cli/2.0.30 Python/3.7.3 Linux/4.14.314-238.539.amzn2.x86_64 botocore/2.0.0dev34
ダウンロードされたパスを確認します。
$ ls -la /usr/local/aws-cli/v2/ total 0 drwxr-xr-x 4 sagemaker-user users 49 Jul 16 08:46 . drwxrwxr-x 3 sagemaker-user root 16 Jul 16 08:04 .. drwxr-xr-x 4 sagemaker-user users 29 Jul 16 08:46 2.0.30 drwxr-xr-x 4 sagemaker-user users 29 Jul 16 08:04 2.13.1 lrwxrwxrwx 1 sagemaker-user users 28 Jul 16 08:46 current -> /usr/local/aws-cli/v2/2.0.30
CLIのバージョン2.0.30にダウングレードし、awsコマンドに反映できました!








