はじめに
本記事では、AWS EC2上へのProxmox導入について解説します。インスタンス選定からインストールプロセス、基本操作方法、初期設定までをカバーします。
物理サーバへのインストールよりも動作が制限されますので、検証や学習用途としてご利用ください。
インスタンスタイプ選定
ProxmoxをAWS上で動かす際にはコストの検討が必要です。今回は比較的安価なインスタンスを用いて、検証や学習用途に構築していきます。今回は利用しませんが、ベアメタルインスタンスではNested Virtualizationが可能なケースがあります。
以下のリソース要件を考慮し、今回はm5.largeでの構築とします。
リソース要件
• vCPU:最低2~4 vCPU程度からスタートするとよいでしょう。テスト用や小規模検証用であれば2vCPUでも可能ですが、Proxmox上で複数のVMを同時稼働させるなら4vCPU以上を推奨。
• メモリ:Proxmox自体は比較的軽量ですが、上で動かすゲストVM分のメモリが必要です。
最低で8GB程度を確保し、ゲストVMを2~3台動かすなら16GB、余裕をもって32GB以上を検討しましょう。
• ストレージ:ProxmoxのOS部は数GBで問題ありませんが、ゲストVMイメージやバックアップを考えると数十~数百GBのEBSボリュームが必要になります。最低50GB程度から開始し、必要に応じて拡張可能なEBSを選択するのが無難です。
• ネットワーク:特別な要件はありませんが、Proxmox WebGUIやSSHアクセス用にセキュリティグループでアクセスを制御します。
Webコンソールのポート(8006)、SSH(22)、仮想マシンへの外部アクセス等を考慮した設定を行いましょう。
インストール前の準備
1. AMI準備:
公式にはProxmox用のAMIは用意されていません。したがって、
• DebianベースのAMI(Proxmox VEはDebianをベースとしているため)を利用し、そこにProxmox VEをインストールする
• 一度ローカル環境でインストールしたProxmoxイメージをPackerなどでAMI化してアップロードする
といった方法があります。ここではDebianベースのAMIにProxmoxをインストールする方法を想定します。
2. 必要なポートの確認:
• Proxmox WebUI: TCP 8006
• SSH: TCP 22
最低限これらを開けておきます。(ただし、パブリックアクセスを行う際は必ずSSHキー認証やVPN、VPC内アクセスに限定するなどセキュリティを確保してください)
3. EC2インスタンス起動:
• インスタンスタイプは m5.large (2vCPU、8GB RAM)程度から始め、足りなければ拡張
• OSはDebian 11 (Bullseye)ベースのAMIを使用することを推奨(Proxmox VE 7.xはDebian 11ベース)
AMI例:ami-002afd708654d7264(IMDSv2を必須に変更することを推奨)
Proxmoxのインストール手順(Debian上へのインストール)
1. SSHでログイン:
デプロイしたEC2インスタンスにSSHログインします。
ssh -i “YOUR_KEY.pem” admin@<EC2_PUB_IP>
2. ホスト名や/etc/hosts設定の確認:
ProxmoxはFQDNが必要です。
sudo vi /etc/hosts
# 例: 「127.0.1.1 ip-127-0-1-1」 を追記、最上行の「ip-127-0-1-1」を削除
以下のファイルも同様に設定し、再起動後も設定の保持。
sudo vi /etc/cloud/templates/hosts.debian.tmpl
sudo apt-mark hold ifupdown
3. Proxmox VEリポジトリの追加:
echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-no-subscription.list
wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
sudo apt update
4. Proxmox VEパッケージのインストール:
sudo apt install -y proxmox-ve postfix open-iscsi
インストール途中でPostfixの設定を求められたら「Local only」を選択するか、必要に応じて設定を変更。
5. 再起動:
sudo reboot
Proxmox初期設定とWebインターフェースへのアクセス
1. Web GUIへのアクセス:
インスタンス再起動後、ブラウザからhttps://<EC2-Public-IP>:8006/にアクセスします。
セキュリティグループやVPCルーティングが正しく設定されていることを確認してください。
2. 初期ログイン:
デフォルトユーザーはroot、インストール時のrootパスワードでログインできます。
もしrootパスワードを設定していない場合、SSH経由でsudo passwd rootで設定しましょう。
3. サブスクリプション警告無効化(任意):
テスト用途なら、Proxmoxのno-subscriptionリポジトリを使用しているため、WebGUIで警告が表示されることがありますが、テスト環境の場合は無視できます。
4. ストレージ設定:
メインのEBSボリュームがlocal-lvmなどとして認識されるケースがあるため、Proxmox WebUIの「Datacenter」→「Storage」からストレージ設定を確認します。必要に応じてNFS、CIFS、S3ゲートウェイなど追加可能。
5. ネットワーク設定:
EC2インスタンスのネットワークインターフェース(通常ens5など)がWebGUIのNetworkタブで確認できます。ブリッジvmbr0を作成して、仮想マシンが利用できる仮想ネットワークを用意します。
今回は設定の適用時にエラーとなる場合があるので、項目の確認に利用しましょう。
仮想マシン・コンテナの作成・操作の基本
1. VMの作成:
Proxmox WebUIから「Create VM」をクリックし、ISOイメージ(localストレージにアップロード可能)またはクラウドイメージを選択して新規VMを作成できます。
今回はネットワークデバイスをなしで構築します。構築後には、OptionタブからKVM hardware virtualizationをNoに変更し、QEMUエミュレーションで動作させます。
動作が遅くなるため、AlpineLinuxなどの軽量ディストリビューションをおすすめします。
2. LXCコンテナの利用:
LXCテンプレートをダウンロードし、「Create CT」から軽量なコンテナを構築できます。
LXCを使用すると軽量なサービスをEC2上のProxmoxで手軽にテスト可能です。
3. コンソールアクセス:
VMやコンテナを起動したら、WebGUI上のConsoleタブからブラウザベースでコンソール接続ができます。
4. リソース監視:
WebGUIのSummaryタブからCPU・メモリ・ディスクI/Oなどの利用状況がリアルタイムで確認可能。
初期セキュリティ設定
1. rootログインの制限:
EC2インスタンスへのSSHアクセスはパブリックIP経由の場合セキュリティリスクがあるため、特定のIPのみからアクセスできるようセキュリティグループを調整します。
2. ファイアウォール有効化:
Proxmoxには内蔵ファイアウォール機能があります。WebGUIの「Datacenter」→「Firewall」から必要なルールを設定すると、仮想マシン単位でのトラフィック制御が可能です。
3. 二要素認証(2FA):
Proxmox VEは二要素認証をサポートしています。WebUIログインに2FAを設定して、アカウント保護を強化しましょう。
まとめ
AWS EC2上でProxmoxを導入することで、物理サーバレスで仮想化ホストをテスト・評価・学習できる柔軟な環境が得られます。基本的なインストールからWebインターフェース操作、ネットワーク・ストレージ構成、セキュリティ設定まで押さえることで、ProxmoxVEの基礎的な運用スキルを身につけることができます。
より詳細な動作マニュアルについては、ProxmoxVEログイン後の右上にDocumentationやHelpボタンがあります。そちらをクリックすると公式マニュアルを参照することができます。
コメント