こんにちは。
今回は、2025年5月19日にオープンソースとして公開された WSL 2(Windows Subsystem for Linux) に Amazon Linux 2023 を導入する方法についてお伝えします。動作確認環境は、Vaio にインストールされている、Windows 11 Pro です。
WSL 2 で Amazon Linux 2023 を動かすことで簡単な操作や運用作業をする際、AWS 上で実稼働しているリソースにログインすることなく動作確認をすることが可能になります。
Amazon Linux 2023 のイメージを取得する
Amazon Linux 2023 のイメージは、 Amazon Elastic Container Registry(Amazon ECR)もしくは Docker Hub で公開されています。WSL 2 は Docker コンテナ用のイメージを利用することが可能なので、これを利用します。
こちらにも公開されていますので、Docker 環境からエクスポートする手間を省きたい方は、こちらにアクセスし、container ディレクトリ内にある拡張子が tar.xz ファイルをダウンロードしてください(その場合は、「WSL 2 に Amazon Linux 2023 イメージをインポートする」までスキップできます)。
Amazon Linux 2023 コンテナを起動する
手元に Docker の実行環境があれば、以下を実行する。なければ、AWS CloudShell などで実行します。
docker run amazonlinux:2023
これで Docker 上で Amazon Linux 2023 が起動しました。
次に、この起動したコンテナをファイルとして扱えるようにエクスポートします。
コンテナイメージをエクスポートする
コンテナイメージをエクスポートするには、稼働しているコンテナのIDを取得し、エクスポートを実行します。
docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
************ amazonlinux:2023 "/bin/bash" 32 seconds ago Exited (0) 29 seconds ago silly_williams
CONTAINER ID の列に表示されている値(この例では、08324491ce7b)がエクスポートに必要な情報です。
以下のように、出力ファイル名、CONTAINER ID の順で指定してエクスポートを行います。実行環境の値に置き換えて実行してください。
# コマンドの形式
# docker export -o 出力イメージファイル名 CONTAINER_ID
docker export -o alami2023.tar ************
これで準備は整いました。
AWS CloudShell で実行している方は、 WSL 2 を実行する環境に取得したイメージ ファイルをダウンロードしておきます。
WSL 2 に Amazon Linux 2023 イメージをインポートする
WSL 2 を実行する環境で以下の設定を事前に完了させておきます。
- 「Windows の機能の有効化または無効化」で「Windows Subsystem for Linux」にチェックを入れて有効化する
- WSL 2 をインストールする
- 任意の場所(例:C:¥WSL 2¥AmazonLinux2023)にイメージ ファイルを格納する
イメージ ファイルをコマンドでインポートする
以下のコマンドを PowerShell で実行して、イメージ ファイルをインポートします。
# コマンドの形式
# wsl --import <登録するディストリビューション名> <仮想ディスク(vhdxファイル)を作成するフォルダ> <WSLにインポートするイメージ ファイルのパス>
# 実行例
wsl --import amazonlinux2023 c:\WSL\AmazonLinux2023 c:\WSL\AmazonLinux2023\alami2023.tar
これでインポートが完了します。
WSL 2 で Amazon Linux 2023 を起動する!
標準で用意されている Ubuntu などと同じように wsl コマンドをディストリビューションを指定して実行するだけで、 Amazon Linux 2023 が起動します。
wsl -d amazonlinux2023
本当に Amazon Linux 2023 か確認します。
以下のコマンドを WSL 2 上の Amazon Linux 2023 で実行します。
ls /etc/*-release
/etc/amazon-linux-release /etc/os-release /etc/system-release
cat /etc/amazon-linux-release
Amazon Linux release 2023.7.20250512 (Amazon Linux)
cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023.7.20250512"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/"
DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/"
SUPPORT_URL="https://aws.amazon.com/premiumsupport/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
VENDOR_NAME="AWS"
VENDOR_URL="https://aws.amazon.com/"
SUPPORT_END="2029-06-30"
cat /etc/system-release
Amazon Linux release 2023.7.20250512 (Amazon Linux)
ばっちり、Amazon Linux 2023 が動いていますね!
しかし、元がコンテナ用のイメージなので最低限の環境のため、必要に応じて追加の設定を行っていきます。
Amazon EC2 で動いている Amazon Linux 2023 に近づけていく
イメージをインポートして起動させただけでは、AWS CLI すら実行できません(インストールされていません)。そのほかにも、vim などのテキストエディタも入っていないようです。
そのため、必要なアプリケーションや設定を行って、実用的な環境にしていきます。
本記事の最後に一気に設定する Shell Script を載せておきますので、注意事項をご確認の上、ご参考になさってください。
プロキシの設定(オプション)
プロキシ環境下ではプロキシの設定が必要です。
わたしの環境では以下の設定ファイルに入れています。使うコマンドなどに応じて、追加してください。
- /etc/profile もしくは ~/.bashrc など
- /etc/dnf/dnf.conf
- /etc/wgetrc
- /root/.curlrc、 ~/.curlrc
この段階ではテキストエディタを設定していないので、リダイレクトで入力することになります。
※テキストエディタを設定後であれば、cat << EOF >> ~ EOF の間の内容を直接入力しても構いません
/etc/profile もしくは ~/.bashrc など
環境変数を参照してくれる HTTP(s)通信をするプログラム向けの設定をします。
以下は、 /etc/profile での例です。リダイレクト先のファイルパスを変更して、 ec2-user などのユーザー作成後にログイン時の読み込みファイルに個別設定することも可能です
cat << EOF >> /etc/profile
PROXYURL=<プロキシ URL>
export http_proxy=${PROXYURL}
export https_proxy=${PROXYURL}
export no_proxy=localhost,127.0.0.1
export HTTP_PROXY=${PROXYURL}
export HTTPS_PROXY=${PROXYURL}
export NO_PROXY=localhost,127.0.0.1
unset PROXYURL
EOF
設定完了したら、source /etc/profile
や source ~/.bashrc
などを実行して再読み込みをして有効化してください。
その後、curl
コマンドがエラー無く実行できることを確認します。
/etc/dnf/dnf.conf
Amazon Linux 2023 はパッケージマネージャーが dnf になっているので、 dnf.conf に設定します。
cat << EOF >> /etc/dnf/dnf.conf
proxy=<プロキシ URL>
no_proxy=localhost,127.0.0.1
EOF
/etc/wgetrc、 ~/.wgetrc
wget を使う場合に設定します。wget インストール後に設定します。
/etc/profile や ~/.bashrc などに設定があれば通常は不要ですが、動作しない場合に設定します。
cat << EOF >> /etc/wgetrc
http_proxy=<プロキシ URL>
https_proxy=<プロキシ URL>
no_proxy=localhost,127.0.0.1
EOF
/root/.curlrc、 ~/.curlrc
curl コマンドを実行する場合に念のため設定します。
/etc/profile や ~/.bashrc などに設定があれば通常は不要ですが、動作しない場合に設定します。
cat << EOF >> /root/.curlrc
proxy=<プロキシ URL>
no_proxy=localhost,127.0.0.1
EOF
Amazon Linux 2023 のアップデート
念のため、Amazon Linux 2023 の最新版へアップデートを行います。
dnf update --releasever=latest
Last metadata expiration check: 0:00:15 ago on Tue May 20 19:17:09 2025.
Dependencies resolved.
Nothing to do.
Complete!
上記のように、Nothing to do
と表示されていれば、最新版です。
ec2-user の作成
手元で使う分には不要かもしれませんが、Amazon Linux といったら ec2-user ということで、ec2-user を作っていきます。
まずは shadow-utils
と sudo
をインストールしてユーザー作成と sudo
が実行できるようにします。
dnf install shadow-utils sudo
次に、 ec2-user
を作成します。
adduser ec2-user
作成した ec2-user
が sudo
を実行できるように設定します。
[推奨] sudo
をインストールしたことで visudo
がインストールされているので、visudo
で設定します。
visudo
# ファイルの末尾に以下を追記
ec2-user ALL=(ALL) NOPASSWD: ALL
# Ctrl + x で保存して終了します。
# その際、ファイル名が /etc/sudoers.tmp となっていますが、そのまま Enter キー押下で保存します。
# visudo がファイル内の情報をチェックして問題なければ /etc/sudoers ファイルを更新してくれます。
ただし、nano
での操作になるため、慣れていない方は以下のリダイレクトでの設定でも構いません。
構文チェックwしてくれないので、指定ミスすると sudo
が出来なくなり、最悪のケースでは Amazon Linux 2023 イメージの再インポートが必要になりますので、ご注意ください。
echo "ec2-user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
WSL 2 で Amazon Linux 2023 にログインした際のデフォルトのユーザーを指定します。
cat << EOF >> /etc/wsl.conf
[user]
default=ec2-user
EOF
ここまで設定できたら、ec2-user
でログインしなおします。
まずは、Amazon Linux 2023 からログアウトします。
exit
そして、WSL 2 を一旦、停止します。
wsl --shutdown
改めて、WSL 2 にログインします
wsl -d amazonlinux2023
成功していると、以下のようにec2-user@ホスト名 カレントディレクトリ名
が表示されます。
[ec2-user@hostname currentdir]$
ec2-user
の id
の内容 や sudo
が行えるか確認します。
id
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user)
sudo -i
[root@hostname ~]#
これで ec2-user
で操作できるようになりました。
テキストエディタ(vimなど)のインストール
sudo
をインストールした段階で、 nano
がインストールされますが、わたしは vim
を使うので vim
のインストールを行います。
sudo dnf install vim
vim を vi と入力して起動したい方は、以下のように適宜 alias の設定をします。
alias vi='vim'
wget のインストール
wget
コマンドでパッケージを取得することもあるので wget
コマンドをインストールします。
その後、前述のとおり、必要に応じて設定します。
sudo dnf install wget
bash の強化
bash
の補完や色付けをして使いやすく強化します。
sudo dnf install bash-completion coreutils-common
これで最低限、使いやすい環境に整いました。
あとは都度、必要なパッケージを入れていけばよいと思います。
AWS 関係のツールのインストール
次に、AWS 関係のツールをインストールしていきます。
AWS CLI
これは外せませんね。個人的には必須ツールです。
コマンド補完もあわせて有効にしておきます。
sudo dnf install awscli-2
echo "complete -C '/usr/bin/aws_completer' aws" >> ~/.bashrc
source ~/.bashrc
aws configure
コマンドで設定を行い、AWS 上のリソースへアクセスできるようにします。
Amazon Q CLI
日本語対応もなされた Amazon Q の CLI をインストールして、WSL 2 上から Q を使えるようにします。
curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
unzip q.zip
./q/install.sh
インストール完了後、 q
コマンドを実行すると、以下のような画面が表示されます。
まとめ
手元のラップトップなどで起動できる Amazon Linux 2023 は素早く検証したい場合に効果てきめんです。
また、別の観点で言えば、Windows 側の環境を汚すことなく AWS の操作環境や開発環境を用意することができるので、必要なパッケージを全部入りにしたイメージを配布し、WSL 2 で起動させればローカルでの開発が捗ります。
ーーー
記載されている会社名、製品名、サービス名、ロゴ等は各社の商標または登録商標です。