0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1. はじめに

この記事は、ラクスパートナーズ Advent Calendar 2024 の24日目の記事です。

2. 背景

VMware や KVM などの仮想化環境を用意するにあたり、AWS 上での検証を検討していました。
その過程で、Proxmox VE を使って以下図のような Nested Virtualizaton の検証環境を構築する案が出ましたので、その際調査したEC2インスタンス上に Proxmox VE をインストールする手順をまとめます。
(Debian、Proxmox VE のいずれもフリーで使用できるため候補として挙げられた次第です。)

Proxmox_on_AWS_image.png

GitHub: Proxmox_on_EC2 構成イメージ

参考
主に以下サイトの内容を参考にしています。

3. 使用バージョン

3-1. Proxmox VE

  • バージョン: 8.3.1
    root@proxmox:~# pveversion
    pve-manager/8.3.1/fb48e850ef9dde27 (running kernel: 6.1.0-23-cloud-amd64)
    

3-2. Debian

  • バージョン: 12.8 (bookworm)
    root@proxmox:~# cat /etc/debian_version
    12.8
    

4. 構築手順

4-1. cloud-init スクリプトの準備

EC2 インスタンスの起動と同時に Proxmox VE のインストールを自動実行するため、cloud-init スクリプトを作成します。
以下リポジトリにサンプルを公開しています。
GitHub: PROXMOX_on_EC2

4-2. EC2 インスタンスの設定・起動

4-2-1. OS イメージの選択 (AMI)

Debian を選択します。

スクリーンショット 2024-12-14 15.48.42.png

4-2-2. インスタンスタイプの選択

メモリ 1 GiB のタイプではフリーズしたため、今回は t3.small (2 GiB) を使用しています。

スクリーンショット 2024-12-14 15.50.35.png

4-2-2-1. 注意点

Proxmox VE 上で仮想マシンを起動したい場合は、ベアメタルインスタンス(〜.metal)を使用する必要があります。
今回はインストールの検証が目的のためベアメタルではありません。下図は t3.small で Proxmox上にて VM を作成しようとした際に表示されるエラーです。(VM の起動はできないため注意)

スクリーンショット 2024-12-14 23.29.11.png

4-2-3. ネットワーク設定

セキュリティグループで以下ポートを解放します。

  • 22 (SSH用)
  • 8006 (Proxmox Web コンソール用)

スクリーンショット 2024-12-15 11.02.08.png

4-2-4. ストレージ設定

適宜、ルートボリュームの容量や種類 (gp2, gp3 等) を設定します。

スクリーンショット 2024-12-14 15.53.58.png

4-2-5. cloud-init の設定

EC2 インスタンス作成画面の「高度な詳細」→「ユーザーデータ - オプション」に、用意した cloud-init スクリプトを貼り付けます。

スクリーンショット 2024-12-14 23.39.37.png

4-2-6. 起動後の cloud-init 実行確認

インスタンスへ SSH できるようになっても、裏で cloud-init が処理中の場合があります。以下コマンドでステータスを確認できます。

root@proxmox:~# cloud-init status
status: running   # 実行中の場合
root@proxmox:~# cloud-init status
status: done      # 完了

ログの内容は以下コマンドでリアルタイム確認可能です。

root@proxmox:~# tail -f /var/log/cloud-init-output.log

4-3. Proxmox VE へのログイン

4-3-1. root パスワードの設定

SSH 接続後、Proxmox VE の Web コンソール用に root ユーザのパスワードを設定します。

root@proxmox:~# passwd
New password:
Retype new password:
passwd: password updated successfully

4-3-2. Web コンソールへのアクセス

ブラウザで下記URLにアクセスします。

https://<インスタンスのパブリックIP>:8006

スクリーンショット 2024-12-14 23.34.36.png

4-3-3. ログイン画面

  • ユーザー名: root
  • パスワード: 上記で設定したもの

スクリーンショット 2024-12-14 23.35.10.png

5. (参考) ベアメタルインスタンスでの構築

c5.metalのインスタンスタイプにて構築を試してみました。

5-1. Proxmox VE は ARM64 (AArch64) 非対応

動作させる際は x86-64 (x64) のインスタンスを選択する必要があります。
EC2インスタンス起動設定時には x86 と Arm インスタンスタイプがあり、Proxmox VE は x86 環境でのみ動作します。
スクリーンショット 2024-12-21 14.52.32.png

5-2. NIC 名の注意

  • ens5enp125s0 など、インスタンスタイプや NIC デバイスによって命名が異なる場合があります。
    その場合、GitHub: PROXMOX_on_EC2 のcloud-initスクリプトの場合、以下記述のインターフェース名(「ens5」の部分)を変更する必要があります。
  # EC2インスタンスのプライベートIPを取得して /etc/hosts に追加
  - PRIVATE_IP=$(ip addr show ens5 | grep inet | awk '{ print $2 }' | cut -d'/' -f1 | head -n 1)
  - echo "$PRIVATE_IP proxmox" >> /etc/hosts

5-3. EC2上のProxmoxでVM起動

5-3-1. ISO アップロード

以下画像のようにISOなどディスクイメージをアップロードします。
スクリーンショット 2024-12-21 14.24.28.png

5-3-2. VM起動

以下画像は、アップロードしたISOファイルを用い、ベアメタル (〜.metal)上で VM の起動をした際の画面になります。(ベアメタルであれば Nested でのVM起動も実施可能です。)
スクリーンショット 2024-12-21 14.36.36.png

6. 感想

最後のベアメタルインスタンス(c5.metal)で数時間動かして検証していましたが、それだけで5,6000円もコストかかってしまっていたので、個人でベアメタルを使うタイミングは来ることは今後一生無いなと痛感しました。。。

(参考)用語

Proxmox VE (Proxmox Virtual Environment)

  • KVM(フル仮想化)と LXC(軽量コンテナ仮想化)を組み合わせたハイブリッド仮想化基盤。
  • ベース OS は Debian をカスタマイズした Linux ディストリビューション。
  • ネットワーク管理には ifupdown2 を使用し、/etc/network/interfaces で設定を行う。

cloud-init

  • クラウドインスタンス初回起動時の設定(ユーザー作成、ネットワーク設定、ソフトウェアインストールなど)を自動化するツール。

Linuxネットワーク管理ツール

  • ifupdown / ifupdown2: /etc/network/interfaces ベースの設定。再起動でインターフェースが再初期化される。
  • NetworkManager: GNOME などのデスクトップ環境向けに使われやすい。systemctl restart NetworkManager.service で再読み込み。
  • systemd-networkd: systemd によるネットワーク管理で、設定ファイルは /etc/systemd/network/ 配下に置く。

参考リンク


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?