Windows10+WSL2環境のLinuxディストリビューションにAWS CLIをインストールしてみた
データアナリティクス事業本部の藤川です。2020年5月下旬に、Windows 10 バージョン2004 ビルド19041(通称、May 2020 Update)が正式にリリースされました。今回のリリースでは、WSL(Windows Subsystems for Linux)がWSL2にバージョンアップし、Linuxカーネルがそのまま動くよう、大幅な進化を遂げています。
これから数回に分けて、WSL2の実力を探りつつ、AWS開発環境を改善してみようと思います。
前提環境
次の環境をご用意ください。Ubuntu 20.04 LTS
のインストール手順は後述しますので、インストールされていない状態でも構いません。
また、他のLinuxディストリビューション
を使用する場合は、適宜読み替えてください。
- Windows 10 バージョン2004 ビルド19041(May 2020 Update)以降
Windows Subsystem for Linux
(Linux用Windowsサブシステム
)をインストール済み仮想マシン プラットフォーム
をインストール済みWSL2 Linuxカーネル更新プログラム
をインストール済み- IAMユーザ及びIAMユーザのアクセスキーが発行済み
WSL
用のLinuxディストリビューション(本記事ではUbuntu 20.04 LTS
)を使用
ゴール
本記事では、Windows 10 Home Edition
を使用し、WSL2
用のUbuntu 20.04 LTS
にインストールしたAWS CLIを使用できるようにします。
手順
前提環境を確認
PowerShell
かコマンドプロンプト
を起動し、次のコマンドを実行します。dism.exe /online /get-features
-
実行結果に次の2点が
有効
と設定されていれば先へ進んでください。機能名 : Microsoft-Windows-Subsystem-Linux 状態 : 有効 機能名 : VirtualMachinePlatform 状態 : 有効
Ubuntu 20.04 LTS
をインストール
Microsoft Store
からUbuntu 20.04 LTS
をインストール
します。Ubuntu 20.04 LTS
を起動
します。Linuxアカウント
について聞かれますので、適当に作成してください。Windows Explorer
で%USERPROFILE%\AppData\Local\Packages
フォルダを開きます。CanonicalGroupLimited.Ubuntu20.04onWindows_*
で始まるファイルを探し、[右クリック]-[プロパティ]を開きます。[詳細設定]
ボタンをクリックします。[内容を圧縮してディスク領域を節約する]
のチェックを外し、[OK]
ボタンをクリックします。- 元の
[プロパティ]
ダイアログに戻るので、[OK]
ボタンをクリックします。 [属性変更の確認]
ダイアログが開くので、[変更をこのフォルダー、サブフォルダーおよびファイルに適用する]
が選択されていることを確認し、[OK]
ボタンをクリックします。[属性の適用エラー]
ダイアログが開くので、[すべて無視]
ボタンをクリックします。属性の適用中
ダイアログが開いて、変換処理が開始します。
筆者の環境では、40分程で完了しましたコマンドプロンプト
を開きます。-
次のコマンドを実行し、
WSL
からWSL2
に変換します。
筆者の環境では、5分程で完了しましたwsl --set-version Ubuntu-20.04 2
変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください 変換が完了しました。
-
ようやく終わりました。筆者の環境では、元々インストールしていた
Ubuntu
に加えて、Ubuntu-20.04
がインストールされました。wsl --list --verbose
NAME STATE VERSION * Ubuntu Running 2 Ubuntu-20.04 Running 2
AWS CLI
をインストール
※参考:LinuxでのAWS CLIバージョン2のインストールに従い、AWS CLI
をインストールしてください。
[スタート]
メニュー-[Ubuntu 20.04 LTS]
をクリックします。- 依存パッケージをインストールします。
sudo apt install unzip
-
AWS CLI
をインストールします。curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
-
AWS CLI
がインストールされたことを確認します。aws --version
-
次のように表示されればインストール完了です。
aws-cli/2.0.17 Python/3.7.3 Linux/4.19.104-microsoft-standard botocore/2.0.0dev21
credentials/configファイル
※詳細は、設定ファイルと認証情報ファイルの設定をご覧ください。
コマンドプロンプト
を開きます。- インストール済みの
ディストリビューション名
を確認します。wsl --list --verbose
NAME STATE VERSION * Ubuntu Running 2 Ubuntu-20.04 Running 2
-
Windows Explorer
で\\wsl$\<ディストリビューション名>
を開きます。\\wsl$\Ubuntu-20.04
-
ルートディレクトリが表示されるので、ホームディレクトリ(
/home/<Linuxユーザ名>
)を表示します。\\wsl$\Ubuntu-20.04\home\<Linuxユーザ名>
-
Windowsでいつも使用している
credential
ファイルとconfig
ファイルをコピーしましょう。無ければ、新規作成してください。Windows Explorerで%USERPROFILE%
フォルダを開きます。 -
%USERPROFILE%
フォルダ直下にある.aws
フォルダを、フォルダごと[Ubuntu 20.04 LTS]のホームディレクトリにコピーしましょう。%USERPROFILE%\.aws ↓ \\wsl$\Ubuntu-20.04\home\<Linuxユーザ名>\.aws
-
同様に、
.ssh
フォルダも、いつも使用しているconfig
ファイルやキーペアファイル(*.pem
)等をホームディレクトリにコピーしましょう。%USERPROFILE%\.ssh ↓ \\wsl$\Ubuntu-20.04\home\<Linuxユーザ名>\.ssh
動作確認
[Ubuntu 20.04 LTS]
を開きます。-
aws
コマンドを実行します。aws ec2 describe-instances
-
EC2インスタンスの一覧が表示されました。
さいごに
Linuxディストリビューションをインストールする際に、最初からWSL2形式でインストールされてくれると楽なのですが、その方法は見つかりませんでした。また、WSL2になっても、一つのLinuxディストリビューションを1環境しかインストールできないため、開発プロジェクトごとに異なる環境を用意しておくことはできないようです。VMwareやDockerほど、使い勝手が良い訳ではありませんが、WindowsでMacのような開発環境を実現できるようになったことは大きな前進と言えるでしょう。
次回は、WSL2環境でAWS SAM CLIを動かしてみたいと思います。