Windows環境でAWS CLI v2をインストールする

2020.04.08

しばたです。
社内でWindows環境でのAWS CLI v2のインストール方法について軽く質問を受け軽く返したのですが、せっかくなのでブログにもまとめておこうと思いこの記事を書きます。

公式のインストール手順

AWS CLI v2のインストール手順は公式のユーザーガイドに記載されています。

Windowsにおけるインストール手順はこちら。

基本的にはこちらの手順を見ていただければ問題なくインストールできるかと思います。
AWS CLI v1との大きな違いとしては、

  • AWS CLI v2は64bit版Windowsのみサポート
  • 公式にはMSIインストーラーによるインストールのみドキュメント化
    • これはMSIインストーラーに専用のPythonがバンドルされた結果と思われます
    • ドキュメントは無くてもpipを使ったインストールも可能と思われます(未検証)

といったところでしょうか。

MSIインストーラーを使ってAWS CLI v2をインストールする

ここから実際にインストールしていきます。
今回は私の普段使いの環境である64bit版Windows 10 November 2019 Update (1909)で試します。

はじめにココから最新のMSIインストーラーをダウンロードして実行します。

あとはウィザード形式で進めていくだけです。

使用許諾にチェックを付けて、

インストール先を選んで、

最終確認、

インストールが始まるので終わるまで待って、

インストール完了!

PowerShellコンソールやコマンドプロンプトからaws --versionを実行してインストールされた事を確認。

これだけです。非常に簡単ですね。

【おまけ】サイレントインストール方法

MSIインストーラーなので以下の様なPowerShellスクリプトを使うとサイレントインストールで作業を自動化することが可能です。
環境に応じて適当に手直して使ってみてください。

$msiSource = 'https://awscli.amazonaws.com/AWSCLIV2.msi'
$msiOutPath = Join-Path $env:TEMP 'AWSCLIV2.msi'
Invoke-WebRequest -Uri $msiSource -OutFile $msiOutPath

# ダウンロードしたMSIファイルを実行し、サイレントインストール
$params = @{
    FilePath     = 'msiexec.exe';
    ArgumentList = @('/i', $msiOutPath, '/passive');
    Wait         = $true;
    PassThru     = $true;
}
$proc = Start-Process @params
switch ($proc.ExitCode) {
    0 {
        # インストール成功
        Write-Host "インストールが完了しました。"
        break
    }
    3010 {
        # インストール成功 : 要再起動
        Write-Host "インストールが完了しました。再起動してください。"
        break
    }
    1602 {
        # インストールが途中でキャンセルされた
        Write-Warning "インストールがキャンセルされました。"
        break
    }    
    Default {
        # その他のエラー
        Write-Error ("インストールに失敗しました。(Exit code={0})" -f $_)
        break
    }
}

AWS CLI v1とからのアップグレードおよび併用について

ここが本記事の本題に近いのですが、AWS CLI v1をインストール済みの環境にAWS CLI v2をインストールする際は少しだけ注意が必要です。

AWS CLI v1とv2の併用

AWS CLI v1とv2はインストーラーも別、デフォルトのインストールパスも別のため併用可能です。
AWS CLI v1インストール済みの環境にv2をインストールすると下図の様に両方インストールされる形となります。

デフォルトのインストールパスも

  • v1 : C:\Program Files\Amazon\AWSCLI
  • v2 : C:\Program Files\Amazon\AWSCLIV2

となっています。

そしてMSIインストーラーからインストールした場合はコマンドの実体であるaws.exeへのパスがPATH環境変数に追加されます。
PATH環境変数は先にあるものから優先されるためv2をインストールしただけでは、既存のv1へのPATHが優先され続けますのでご注意ください。
v2を優先したい場合は手動でPATH環境変数を設定しなおす必要があります。

AWS CLI v1からv2へのアップグレード

AWS CLI v1とv2はインストーラーが別なのでアップグレードするには

  1. AWS CLI v1のアンインストール
  2. AWS CLI v2のインストール

を行う必要があります。

最後に

ざっとこんな感じです。
私はAWS Tools for PowerShellを常用するのでAWS CLIはあまり使わないのですが、AWS CLIでしか提供されていない機能があるので一応インストールして利用しています。

本記事の内容が誰かの役に立てば幸いです。