WSL を用いた EC2-1 / EC2-2 実験環境構築メモ

1. 背景

EC2 を用いたシステム構成(Web / API / DB 等)の検討・実験を行うにあたり、以下の制約と要件があった。

  • 複数台 EC2 を用いた構成検討を行いたい
  • 毎回 AWS 上に EC2 を立てるのはコスト・手間が大きい

  • 完全な性能評価ではなく、

    • 構成設計

    • 役割分離

    • 起動手順

    • 常駐プロセス

    • 設定ファイル構成
      などの実験的検証が主目的

このため、WSL2 を EC2 のローカル実験環境として利用する方針を採用した。


2. 基本方針(設計思想)

  • WSL ディストリビューション = EC2 インスタンス相当

  • 1ディストリビューション = 1役割

  • BASE(原本)から export / import により派生環境を作成

  • 派生環境(ec2-*)は消耗品として扱う

  • IP 分離は行わず、ポート分離で通信を行う


3. 用語整理

名称 意味
BASE 原本となる Ubuntu(作業用・テンプレ)
ec2-1 BASE から派生した 1台目の実験環境
ec2-2 BASE から派生した 2台目の実験環境
export ある時点の環境をスナップショット化
import export した環境から新環境を生成

4. BASE 環境の位置づけ

BASE は以下の目的で使用する。

  • 開発・検証・試行錯誤用

  • 各種ツール・ライブラリを自由に導入

  • ec2-* を作るための 原本(テンプレ)

BASE 自体は EC2 相当としては使わない。


5. ec2-1 / ec2-2 作成手順(概要)

5.1 BASE を export

目的:
「この状態を正とする」起点を固定するため

wsl --shutdown
wsl --export Ubuntu C:\wsl\ubuntu_base.tar

これにより、BASE の状態を完全に凍結したテンプレを作成。


5.2 ec2-1 / ec2-2 を import

目的:
BASE と同一の初期状態を持つ独立環境を作成するため

wsl --import ubuntu-ec2-1 C:\wsl\ubuntu-ec2-1 C:\wsl\ubuntu_base.tar --version 2
wsl --import ubuntu-ec2-2 C:\wsl\ubuntu-ec2-2 C:\wsl\ubuntu_base.tar --version 2

この時点で、

  • ファイルシステム

  • ユーザ

  • インストール済みパッケージ

は BASE と同一だが、完全に独立した環境となる。


6. デフォルトユーザ設定

目的

  • root ではなく、通常ユーザ(ebata)で運用する

  • EC2 の一般的な運用形態に合わせる

実施内容

/etc/wsl.conf を作成:

[user]
default=ebata

WSL 再起動後、ebata がデフォルトユーザとなる。


7. 環境識別(混在防止)

課題

  • BASE / ec2-1 / ec2-2 を同時に扱うため、
    「今どの環境にいるか」が即座に分かる必要がある。

対応

各環境の ~/.bashrc に以下を設定:

export EC2_ROLE="ec2-1"   # または ec2-2
export PS1="[${EC2_ROLE} \u@\h \W]\\$ "

これにより、プロンプトで環境が明確に識別できる。


8. ec2-1 / ec2-2 の軽量化

背景

  • ec2-* はレプリカである必要はない

  • BASE と同じ開発成果物を保持する意味はない

  • ディスク消費を抑えたい

実施内容

  • /home/ebata 配下の不要ディレクトリを削除

    • go

    • matsim

    • tsubame

    • video-server

    • aws

  • キャッシュ削除

  • apt キャッシュ削除

必要に応じて sudo rm -rf を使用(所有者が root のファイルが存在するため)。


9. ディスク容量が減らない件について

現象

  • Linux 内でファイルを削除しても

  • Windows 側のディスク使用量が減らない

理由

  • WSL2 は ext4.vhdx という仮想ディスクを使用

  • 拡張は即時、縮小は自動で行われない仕様

判断

  • Linux 側の df -h で空きが増えていれば問題なし

  • 今回は 縮小処理は不要と判断


10. ネットワーク設計に関する判断

事実

  • BASE / ec2-1 / ec2-2 は同一 IP を持つ

  • WSL2 の仕様であり、変更不可

採用方針

  • IP 分離は行わない

  • 127.0.0.1 + ポート番号 による通信を使用

例:

環境 役割 ポート
ec2-1 Web / API 9001
ec2-2 DB 5433

11. EC2 実験用途としての評価

再現できること(◎)

  • 役割分離

  • 構成設計

  • 起動順序

  • 常駐プロセス

  • 設定ファイル構成

  • デプロイ手順

再現できないこと(割り切り)

  • IP / VPC / SG

  • ネットワークレイテンシ

  • AWS マネージドサービス

  • 性能評価

総合評価

「EC2 の実験的使用(構成・設計検証)」としては十分に有効


12. まとめ(本メモの結論)

  • WSL + export/import による ec2-* 構成は妥当

  • BASE を原本、ec2-* を消耗品とする設計は合理的

  • IP 分離を目的としない限り、実験用途として高く評価できる

  • 本構成は、将来の実 EC2 環境への移行を強く意識した設計である


未分類

Posted by ebata