🫠

【壊してもいい環境が欲しい!】HomeLabを構築した話

に公開

はじめに

海外の Youtube 動画を閲覧したり、ほかの方の記事を読んだりして HomeLab というものにあこがれを抱いていました。
自宅に構築してから数か月たったので、記録を残していきます。

なぜ HomeLab が必要か

壊してもいい環境を作る

私は HomeLab を「自宅で壊してもいい環境を作ること」と解釈しています。
いまどき、Windows の仮想化マシン WSL2 を使えば簡単に Linux の仮想マシンを構築することは容易ですが、あえてお金を出してまで構築したのには理由があります。

  1. ネットワークを使用した実験ができる
  2. 物理的に分離されている環境が欲しい(安心が欲しい)
  3. クラスターを構築してみたい

仮想環境でも同じことができるのではないか

工夫次第ではわざわざ高いお金を出してまで、ネットワーク分離をおこなわくても仮想環境マシン同士を通信させることでネットワークの実験自体はできると思います。
しかし私は私自身の行動を信用していないので、ポカミス(不注意によるケアレスミス)を防ぐためにもネットワークを分離して、安心して実験できる環境を作る必要がありました。
また kubernetes に代表されるクラスター構成というものを実験できる学習環境を手に入れる必要がありました。
高可用性のシステム構築をするにはどうすればいいのかをドキュメント読むだけでなく、手を動かす必要があると感じたためです。

そんなわけで私は HomeLab を構築するにいたりました。

機材と構成

機材

2025/11 にブラックフライデー・サイバーマンデーセールがあったため、これに合わせて機材調達を行いました。
そのあとすぐにメモリ不足による中古価格の急騰がはじまり、時期的にはラッキーでした。
(DDR4メモリたくさん買っておけばよかった...)

機材 個数 説明
HP ProDesk mini(Core i5-8500T / 8GB RAM / 256GB SATA SSD) 3 クラスター本体。今回の HomeLab の主役。
OS は Windows11 から Ubuntu Server 24.04 LTS に換装。
ER605 1 ルータ。家のネットワーク分離に使用。
TL-SG108PE 1 スイッチングハブ。今回の構成であれば台数が限られているため、ER605で賄えたかも。

今回の導入費用はおよそ 8 万円(税込み)でした。(高い...)
とはいえ、学習のために安心を買っているので必要経費と割り切って耐えます(´;ω;`)

ネットワーク構成

以下のように構成しました。

補足

ISP について

ISP はマンション付属の無料インターネットを使用しています。入居する際にネットワークが遅い可能性も危惧しましたが、実効値上下 150Mbps / 180Mbps (※)と比較的出ており、月数千円の節約になるためこのままにしています。
マンション付属の無料インターネットの負の側面として払い出される IP は壁の LAN ポートに来た時点でプライベート IP アドレスであり、グローバル IP は取得できません。(当然、ポート開放もできません。)
このため、HomeLab 配下のマシンから見ると2重どころか3重~4重のルータ構成となりました。
ちなみに固定 IP アドレスの払い出せる光プロバイダーの契約を検討したもののこちらも維持コストが気になり、断念しました。
外部からのアクセスについては多重 NAT 越えが可能な TailScale を HomeLab 環境下のマシンすべてに導入してます。幸い、このような CGNAT 配下でも越境することができたため P2P 通信がおこなえました。

(※)下りを長時間連続使用していると 35Mbps に制限されるみたいでした。無料ゆえに帯域圧迫しないよう制限がかけられていました、残念...

多重ルータ構成にした理由

ER605 を HomeLab との境界に置くことで、自宅のほかの実利用する機材との通信を分離することができます。
今回トップルータに VLAN 機能のついている ER605 を使用せず、Deco M4 配下にぶら下げたのはER605 自身の設定をいじっても HomeLab 以外の自宅で使用する機器に問題が起きないよう配慮したためです。

構築してよかったこと

費用を見ると決して安くないですが、導入したことによって検証の幅が広がりました。

  • 最近話題の OpenClaw も危険を冒しながら自宅のネットワークと直接通信できる環境下で実行する必要がなくなった
  • ブロードキャスト・ストームのようなネットワークがなければ実験できない内容
  • 自分自身に提供するプライベートなサービスの作成

今現在自宅で運用中のサービスは以下の通りです。

  • Jenkins (検証用)
  • k3s (検証用)
  • Bazel (マシン監視用)

さいごに

運用している感、秘密基地を作っている感があり、マシン監視のグラフを眺めているだけでも非常に楽しいです。
今後この環境をあそびたおしていきます |ω・)و ̑̑༉

Discussion