自宅サーバについて
お疲れ様です。
今回は、私が自宅で運用しているサーバ環境についてご紹介します。
クラウド全盛の時代に、あえて自宅に物理サーバを構築している理由や、その構成・運用の工夫などをまとめました。
「サーバ」と聞くと、企業のデータセンターに設置された大きなラックマウント機材を思い浮かべる方も多いかもしれません。
しかし、私の自宅サーバは一般的なデスクトップPCやミニPCを組み合わせた、コンパクトかつ静音性(添い寝可能[重要]) を重視した構成になっています。
① なぜ自宅サーバーを運用しているのか
自宅サーバ環境を作るきっかけはMinecraftというゲームを
「友達と一緒に遊びたい」という思いから家に転がっていた中古パーツを集めてサーバを建てたのが始まりです。
田舎に住んでいたということもあり、「サーバを建てるしかない」という勢いで環境を整えました。
自宅サーバはロマンの塊です。
自分の手で動くサーバが家の中で稼働しているということだけで楽しいです。
② ハードウェア紹介

現在はメタルラックを使用してサーバ機材を整理しています。
それぞれの段に役割を持たせることで、メンテナンス性を高めています。
各機器には固定IPアドレスを記したシールを貼り、管理しやすいよう工夫しています。
また夜間でも光が気にならないよう、LEDのまぶしい部分にはマスキングテープを貼って遮光しています。
上図をもとに上段左から順に紹介していきます。
1段目:
プリンタやPCパーツ類を収納したケースを設置しています。
サーバ以外にも、細かな周辺機器やケーブルをまとめることで、メンテナンス性を高めています。
2段目:
ネットワーク機器を集約しています。
ルータ:YAMAHA RTX830
L3スイッチ:YAMAHA SWX3100-10G
リブータ(遠隔電源制御装置):明京電機 WATCH BOOT nino RPC-M2CS
3段目:
各サーバのフリーズ時や停電時など、障害発生時の対策を行っています。
UPS(無停電電源装置):APC BR550S-JP(550VA/330W)
miniPC(VPN用):mouse Pro
miniPC(検証用):Intel NUC
PC(server#3 検証用):FUJITSU PRIMERGY TX1310 M3 (TrueNas SCALEなどを入れて遊んでます)
4段目:
開発・検証用の自作PCを3台設置しています。
コストを抑えるため、中古パーツを組み合わせて構築しています。
PCケース:中身はまだ未構成(今後増設予定)
PC(server#1):Intel Core i7-12700 / 64GB RAM
PC(server#2):Ryzen 7 7700 / 64GB RAM
※外部GPUは基本的に搭載していません。AIなどで遊べたりいろいろできますが、消費電力を考えると心が落ち着かないためです。
③ ネットワーク構成

ネットワーク全体の概要
自宅サーバ環境では「サーバ用ネットワーク(VLAN101)」と「家庭用ネットワーク(VLAN102)」に分けて運用をしています。タグVLANというものを用いています。
サーバ用ネットワーク(VLAN101)
VLAN 101(サーバ用)
IP帯域:192.168.110.0/24
ゲートウェイ:192.168.110.254
Tailscale(VPN)や各サーバが設置されています。
server#1,server#2はクラスタ構築を行っています。
停電時から数分経つとAPC UPSが停止信号を送りserver#1は安全にシャットダウンされます。
サーバがフリーズした場合はリブータがマジックパケットを送信し電源のオンオフを行います。
VLAN 102(家庭用)
IP帯域:192.168.120.0/24
ゲートウェイ:192.168.120.254
家庭内のPCやプリンタなど、日常的な機器を接続しています。
このように用途ごとにネットワークを分けることで、セキュリティを高めています。
サーバ管理者のアクセス方法
サーバ管理は外出先からも行えるようにしています。
管理者はTailscaleを経由してVLAN101へ直接アクセスでき、自宅外からでもSSH接続が可能です。もちろんスマホからでも各VMの操作も可能です。
内部的なお話
miniPCにはProxmoxという仮想化OSが入っており、その上に2台のUbuntuServer(VM)が稼働しています。
各Ubuntu ServerにはTailscale1、Tailscale2がインストールされており、Exit Nodeとして機能しています。
Tailscaleの無料プランでは管理者は3人まで登録可能ですが、2つのVMを使うことで合計6人まで管理者としてアクセスできるようにしています。
また、miniPCは通電後に自動で電源がONになる設定です。
Tailscaleは簡単に言えばVPNのようなもので、外出先からでも安全にVLAN101内のサーバにアクセスできます。
外部公開の仕組み
自宅サーバで稼働しているサービスは、xserverで取得した独自ドメインを利用して名前解決を行っています。
公開にあたっては、自宅サーバを直接インターネットに公開するのではなく、Cloudflare Tunnel や VPS(DDPS)を経由させています。
これによりポート開放を行わずに済み、外部からの不正アクセスリスクを減らしながら、安全にサービスを提供できます。
Cloudflare Tunnelでは、Cloudflareのサーバと自宅サーバの間に安全な通信経路(トンネル)を確立し、外部の利用者はCloudflare経由でアクセスします。
VPS経由の方式 では、VPSを中継サーバ(リバースプロキシ)として利用しています。
そのほかにもHTTPS化やDDoS軽減など、さまざまなセキュリティ対策を行っています。
④ サービス構成

仮想化環境には Proxmox VE 8.4 を採用し、複数のVM(仮想マシン)を運用しています。
現在は2つのデータセンターを構成し、クラスタとして連携させています。
主なサービスは以下の通りです。
ゲームサーバ
Webサービス
API・Bot
現在は約4名で運用・管理を行っており、チーム全体で安全かつ効率的に作業できるよう、いくつかのルールを設けています。
VM命名規則:名前-用途-日付
パスワードポリシー:20文字以上で記号を含める
ロール管理:admin・moderator・developerなどの権限を作成・付与し、誤操作による削除を防止
このようにルールを統一することで、複数人での管理でもトラブルを防ぎ、安定した運用を維持しています。
⑥ まとめ
運用を通じてコミュニティが広がり、専門的な知識を持つ方や自分より年下の人と教え合ったり教えてもらったりすることで、学びの幅が広がり、刺激を受ける機会も増えました。
サーバは24時間稼働していますが、月の電気代はおよそ1万円ほどに抑えられ
冬はサーバの熱で部屋が暖かくなるため、暖房代の節約にもなります!
今後は、10G回線の導入やそれに伴う機器の準備、複数サーバ間の冗長化など、さらに運用を進化させていく予定です。
Discussion