ホームクラスタ構築1: ハードウェア選びとネットワーク構成
Proxmox VEベースのホームクラスタ構築過程におけるハードウェア選択とネットワーク構成
こんにちは。
今回の記事では、Proxmox VEベースのホームクラスタ構築過程におけるハードウェア選びとネットワーク構成についてお話ししたいと思います。
ホームクラスタを構築した理由
以前、私は様々なプロジェクト運営、開発およびテストのワークロード処理、そして個人的な学習と実験のためにAWS EKS上で全て処理しようとしました。そして実際に3ヶ月ほどEKSを運営し、開発サーバーとして活用しました。
しかしクラウドは高価です。(非常に高価です..)
個人用サービスと開発のためのクラスタがメインとなる状況で、EKSなど外部クラウドサービスに完全に依存するのは過剰だと判断しました。
長期的な観点で維持可能で、多少の不安定さがあっても費用損失を防ぐことが現状に適していると判断しました。
ハードウェア選択
個人オフィスなど、サーバーを稼働させる場所が適切でないため、様々な条件を気にしなければいけませんでした。発熱、騒音問題から電力供給、冷却、そしてネットワークまで様々な条件を考慮した結果、普段構成されるサーバラックおよびマウントは不適合だと判断しました。
また費用面でも、商用サービスを現在は運用していないため、初期費用を最小化しようとしました。
これらの理由から、最適のハードウェアを選ぶために以下の基準を設定しました。
価格安価であること。
ほとんど聞こえないほど静かであるべきで、発熱を抑えられること。
狭いスペースにも設置できること。
既存のワークロードを処理できる性能を持つこと。
特に価格の制約が最も大きかったため、中古やアリババなどで購入することを積極的に検討しました。
その結果、インテル Xeon E5シリーズおよび中国製マザーボードの構成が現在では最も安価で、上記の基準に適合しているとみなしました。また、サーバー用ケースではなく一般家庭用デスクトップケースが発熱および騒音の部分で有利であるため、この点も適合していると判断しました。

(そして準備されたコンピュータ)
ノード仕様
Intel E5 2680 v4
64GB RAM
512GB NVME M.2
1TB SSD
計2台を購入し組み立て、既に使用していたミニPC 1台を準備しました。HDDではなくSSDを使用した理由は、既存のストレージを活用しながらHDDの騒音問題を考慮して追加購入しなかったためです。また、Raspberry Piを使用してCloudflareトンネルを構成し、WireGuardを通じて内部ネットワークへのアクセスを行う予定です。
性能と安定性の評価のため、当面は1台のノードのみを使用する計画ですが、後日、複数のノードを接続し拡張する計画です。
ネットワーク構成
スイッチを購入し、ネットワークを分離して固定IPを取得し、ロードバランサーを構成して接続するのが最適な選択ですが、固定IP取得やスイッチ購入にも費用がかかり、その構成が現在の使用目的には過剰だと考えました。
また、使用中のIPTIMEルーターがDDNS発行機能をサポートしており、ポートフォワーディングなどルーターでサポートされる機能を積極的に活用しようとしました。
したがって、現在の構成でルーターと直接ノードを接続し構成する予定ですが、今後接続されるノードが増えたり、他の環境に移行する場合には、別途スイッチ使用を検討する計画です。
flowchart LR
A[クライアント] -->|"1. mandacode.com 照会"| B[Cloudflare DNS]
B -->|"2. CNAME 応答<br/>abcd.iptime.org"| A
A -->|"3. abcd.iptime.org 照会"| C[iptime DNS サーバー]
C -->|"4. A レコード 応答<br/>公正IP 1.2.3.4"| A
A -->|"5. 1.2.3.4に接続要求"| D[ルーター WAN]
D -->|"6. NAT/ポートフォワーディング"| E[内部サーバー]ハイパーバイザー
私はハイパーバイザーとしてProxmox VEを選びましたが、無料で使用でき、インストールも簡単で、ZFS、Cephなど様々なストレージオプションやネットワーク仮想化機能をサポートしているためです。
また、ダッシュボードUIが直感的で管理が便利である点も大きな利点でした。

(Proxmox VE ダッシュボード)
後日、Proxmox VEクラスタ機能を活用してクラスタを拡張する計画ですが、現在は単一ノードで完全に安定していないため、ETCDバックアップおよびGitOpsワークフローを通じてクラスタ状態を管理する方法で運用する予定です。
結び
次の記事では、Proxmox VE上にTalos Linuxをインストールし、Kubernetesクラスタを構成した過程についてお話ししたいと思います!