概要と構成の全体像
自宅では、学習・開発・運用の各用途を兼ねた小規模なサーバー環境を構築している。主に2拠点(下宿先と実家)を常時VPNで接続しつつ、Webサービスのホスティングやファイルサーバーの運用を行っている。
ルーター、サーバー、NAS、UPS(無停電電源)を組み合わせた構成となっており、それぞれ以下のような役割を担っている。
機材構成
GL-MT3000(Beryl AX)
OpenWrtがプリインストールされた高機能ルーター。WireGuardのサーバー・クライアント機能を標準で備えており、実家と下宿先を常時VPNで接続している。このVPN接続により、どちらの拠点からでもNASやローカルサーバーへアクセス可能なネットワークが構成されている。

Dell Optiplex 3060(公開用サーバー)
Docker環境をベースに複数のWebサービスを運用しているマシンである。Docker Portainerを導入し、GUIベースでコンテナの立ち上げや保守を行っている。
現在は以下のような用途で運用している。
- WordPressサーバー
- 本サイト(takamuku.com)
- 学園祭公式サイト(aramakisai.com) など
- Nginx Proxy Manager
- お名前.comのDDNS更新プログラム(Python)
このPythonプログラムは、定期的に自身のグローバルIPアドレスを取得し、takamuku.comやaramakisai.comなどのDNSレコードを自動更新している。
Dell Optiplex 3050(実験用)
主にテストや検証目的で使用している端末。

QNAP TS-431P(NAS)
6年以上前に導入した個人用ファイルサーバーで、現在も安定して稼働中である。8TBのHDDを4台搭載し、RAID構成によって約24TBの容量を確保している。主に映像素材、RAW写真、バックアップファイルの保管に利用している。

Anker 521 Portable Power Station (バッテリー)
UPSの代替として使用しているポータブル電源。本体への給電と同時に出力も可能な仕様であるため、ネットワーク機器やHDD類の電源供給を担っている。停電時も数時間は動作が継続するため、突然の電源断でも光回線が生きていれば、HDDのデータを守りながらサーバー運用が続けられる。

今後の構成変更予定
DDNS更新処理のDocker化
現在は常駐スクリプトとして運用しているPythonプログラムを、Dockerコンテナ内で定期実行される形式に移行予定である。これにより、再起動後の再設定の手間を減らし、保守性を高めたい。
サーバー応答監視とDNS切り替え
実家側のOpenWrtルーターにスクリプトを組み込み、下宿側の公開サーバーからの応答が一定時間得られなかった場合に、代替レコードへ自動で切り替える仕組みを作成中である。