【AWS】WindowsでAWS CLI バージョン 2をインストール

Windows環境でAWS CLI バージョン 2をインストールする方法についての備忘メモです。

# 前提条件
## この記事の対象者
- IAM ユーザ情報を持っており、AWS CLI を初めてインストールする
- AWS CLI バージョン 1 をインストール済で、バージョン 2 にアップグレードしたいがインストール方法を忘れた

## この記事のゴール
AWS CLI バージョン 2をインストールし、基本設定を行う

## 必要なもの

- 64 ビットバージョンの Windows XP またはそれ以降
- ソフトウェアをインストールするための管理者権限
- IAMユーザの、アクセスキーIDとシークレットアクセスキー

## 環境情報
Windows 10 Home (64bit) バージョン 1909 (November 2019 Update)

# AWS CLI バージョン 2 インストール手順
以下の手順でインストール、基本設定を行います。

1. AWS CLI MSI インストーラのダウンロード
1. ダウンロードした MSI インストーラの実行
1. インストールの確認
1. AWS CLI 設定

**参考：公式ユーザガイド**

基本的なインストール方法は公式ユーザガイドに記載されています。

- [AWS CLI のインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html)
- [Windows での AWS CLI バージョン 2 のインストール、更新、アンインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html)

## 実際にインストールしてみる
<dl>
<dt>1. AWS CLI MSI インストーラのダウンロード</dt>
<dd>[こちら](https://awscli.amazonaws.com/AWSCLIV2.msi) から最新のMSI インストーラをダウンロードします。
![awscli_v2_msi.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620994/833a87e7-e7e9-2662-f052-d998a67d974d.jpeg)</dd>
<dt>2. ダウンロードした MSI インストーラの実行</dt>
<dd>MSI インストーラを実行し、画面の指示に従って進めます。
![awscli_v2_install_001_60.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620994/f0050450-193d-2dbf-cb79-83bc7388af31.png)
![awscli_v2_install_002_60.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620994/12f20564-c22a-796b-79dc-e40628d7d96c.png)
デフォルトでは、```C:\Program Files\Amazon\AWSCLIV2``` にインストールされます。
![awscli_v2_install_003_60.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620994/e4dbb035-0ccf-c7c9-2dfe-0246694eb639.png)
```Install``` をクリックして、インストールを開始します。
![awscli_v2_install_004_60.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620994/81183078-47a3-635e-7527-fc02d4f00006.png)
以下の画面が表示されたら、```Finish```をクリックし、インストールを完了します。
![awscli_v2_install_006_60.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620994/a99005e8-e492-c5b4-fdc7-20ae26c8535a.png)</dd>
<dt>3. インストールの確認</dt>
<dd>コマンドを入力して、インストールされていることを確認します。

```:コマンド
aws --version
```

```:実行結果
aws-cli/2.1.7 Python/3.7.9 Windows/10 exe/AMD64 prompt/off
```
</dd>
<dt>4. AWS CLI 設定</dt>
<dd>コマンドを入力して、AWS CLI を使用するための基本設定を行います。

```:コマンド
aws configure
```

```:設定値の入力
AWS Access Key ID [None]: [アクセスキーIDを入力]
AWS Secret Access Key [None]: [シークレットアクセスキーを入力]
Default region name [None]: ap-northeast-1
Default output format [None]: json
```
</dd>
<dd>設定の確認を行います。

```:コマンド
aws configure list
```

```:実行結果
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************XCOV shared-credentials-file
secret_key     ****************UJjg shared-credentials-file
    region           ap-northeast-1      config-file    ~/.aws/config
```
</dd>
<dd>**参考：公式ユーザガイド**

- [AWS CLI の設定](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-configure.html)</dd>

# AWS CLI バージョン 1 がインストール済みの場合
## バージョン 1 をアンインストールする
[公式ユーザガイド](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html) では、AWS CLI バージョン 2 を使用する際に、バージョン 1 をアンインストールすることが推奨されています。
>**推奨**: – AWS CLI バージョン 1 をアンインストールし、AWS CLI バージョン 2 のみを使用します。

バージョン 1 と 2 では同じ ```aws``` コマンドが使用され、検索パスで最初に見つかったバージョンが使用されるためとのことです。
バージョン 1 のアンインストール方法は [こちら](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html)。

## バージョン 1 と 2 を併用する
PATH環境変数の設定を変更し、バージョン 2 の ```aws``` コマンドを実行することが可能です。

### バージョン 2 インストール後すぐの状態
AWS CLI バージョン 1 がインストール済みの環境で、バージョン 2 のインストールを行うと、両方が共存した状態となります。
![program_and_features.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620994/2e47c90d-033d-d072-0355-4821c98e6578.png)

このまま ```aws``` コマンドを実行すると、バージョン 1 の ```aws.exe``` が実行されます。

```:コマンド
aws --version
```

```:実行結果
aws-cli/1.18.190 Python/3.6.0 Windows/10 botocore/1.19.30
```

これは、インストール時に自動設定されたPATH環境変数で、バージョン 1 のパスが優先されているためです。

### PATH環境変数の設定
環境変数の設定で、バージョン 2 のパスを バージョン 1 のパスよりも上に移動すると、バージョン 2 の ```aws.exe``` が実行されるようになります。

```:バージョン1のデフォルトパス
C:\Program Files\Amazon\AWSCLI\bin\
```

```:バージョン2のデフォルトパス
C:\Program Files\Amazon\AWSCLI2\
```

バージョン 2 のパス ```C:\Program Files\Amazon\AWSCLI2\``` を、
バージョン 1 のパス ```C:\Program Files\Amazon\AWSCLI\bin\``` よりも上に移動します。
![environment_var_60.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620994/ae2737a4-1f0e-432d-86ea-ae228d4e45b1.png)

```aws --version``` コマンドで、バージョン 2 の情報が表示されるようになりました。

```:コマンド
aws --version
```

```:実行結果
aws-cli/2.1.7 Python/3.7.9 Windows/10 exe/AMD64 prompt/off
```

# おわりに
IAM ユーザのアクセスキーIDとシークレットアクセスキーについて、AWS CLI の設定と認証情報については、別記事を書きたいと思います。

## 参考サイト
参考にしたAWS公式のユーザーガイド

- [AWS CLI のインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html)
- [Windows での AWS CLI バージョン 2 のインストール、更新、アンインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html)
- [Windows での AWS CLI バージョン 1 のインストール、更新、アンインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html)
- [AWS CLI の設定](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-configure.html)