自宅サーバ(1) - ハイパーバイザの導入と設計
概要
物理マシンにProxmox VE を導入し、LXC コンテナや仮想マシンを GUI から手動で作成し、その上でサービスを動作させるまでの過程をまとめます。
ハードウェアの選定
ミニPCであるGMKtec NucBox G3 Plusを採用しました。CPUはN150、メモリは16GB、ストレージは512GBのNVMe SSDを搭載しています。
ハイパーバイザの導入
仮想化の基盤としてハイパーバイザを導入します。ハイパーバイザとは、一つのリソース上で複数の仮想マシンやコンテナを実行するためのソフトウェアです。ハードウェア上に直接インストールされ、かつライセンス料を気にする必要のないハイパーバイザは現状 Proxmox 一択であるようなので、そちらを採用します。
インストール方法については次のページが参考になります。当然、公式のドキュメントを参照するのもよいでしょう。
設計
ここまでで自宅サーバ環境を構築していくまでの下準備が完了しました。ここからProxmox上にサービスを走らせていきたいのですが、混乱を防ぐためコンテナ/仮想マシンを基盤/公開/内部の3グループに分けて管理していきます。IDの100番台はシステム全体が依存する基幹サービス、200番台はドメインを持ち、外からの接続を待つもの、300番台は家庭内ネットワークまたはVPN経由でのみ利用する個人用ツールやアプリケーションを配置します。なお、ネットワークそのものの設計については言及しません。
構築
あらかじめ設計した内容に従って、GUIからLXCコンテナや仮想マシンを作成し、サービスを動作させていきます。 基盤層ではcloudflaredを用いてリバースプロキシやAdGuard HomeによるDNSサーバを立てています。公開層ではこのサイトを配信するためのNginxサーバを、内部層ではDiscordのBotやGitHub Actionsのランナーなどを配置しています。