← All work

Case study · 03

Infrastructure

自宅サーバー

自分で理解し、自分で運用するクラウド

余っていたPCを仮想化基盤として活用し、ファイル共有と実験環境を自分で管理できるようにしました。サービスを分離し、外出先からはTailscaleのプライベートネットワーク経由で接続する構成です。

03

仮想化 / 安全な遠隔接続 / バックアップと復旧

FIELDInfrastructure
TOOLSProxmox VE · Nextcloud · Nginx · Tailscale
FOCUS仮想化 · 安全な遠隔接続 · バックアップと復旧
01

What it does

できること

01

用途ごとに環境を分離

Proxmox VEを土台に、ファイルサーバー、ゲームサーバー、検証環境を別々の仮想マシンまたはコンテナとして管理します。ひとつの障害や更新が全サービスへ波及しにくい構成です。

  • 用途ごとのCPU・メモリ割り当て
  • スナップショットで変更前へ戻しやすい
  • 管理画面から稼働状況を一覧確認
02

Nextcloudでファイル共有

PCやスマートフォンから同じファイルへアクセスできる個人クラウドを構築しました。Nginxは入口として通信を適切なサービスへ渡し、アプリ本体と役割を分けています。

  • データ領域とアプリ領域を分離
  • HTTPSを前提にした入口設計
  • 容量、更新、バックアップを運用項目にする
03

Tailscaleで外出先から接続

賃貸回線でグローバルIPやポート開放を自由に使えない条件に対し、TailscaleのメッシュVPNを採用しました。公開インターネットへ管理画面を直接さらさず、許可した端末同士で接続します。

  • 端末ごとの認証と失効
  • IP公開ではなくプライベートな接続
  • 接続元・DNS・アクセス制御を記録
02

Why I made it

きっかけと課題

複数のPC間でファイルを移す手間を減らしたいこと、クラウドサービスの仕組みを利用者側ではなく運用者側から理解したいことが出発点でした。

単に一度動かすことではなく、更新、障害、容量不足が起きても原因を切り分けられる構成を目標にしました。そのため、サービスをひとつのOSへ直接詰め込まず、仮想化して責任範囲を分けました。

03

Process

進め方・実装手順

  1. 01

    要件と脅威を整理

    使う人、接続する場所、保存容量、停止してよい時間、外部公開の必要性を整理し、管理画面は公開しない方針にしました。

    OUTPUT — 構成図とアクセス方針
  2. 02

    Proxmox VEを導入

    インストール用メディアから専用PCへ導入し、管理用アドレスを固定します。BIOSの仮想化支援とストレージ状態も確認します。

    OUTPUT — 仮想化ホスト
  3. 03

    サービスを分割

    Nextcloud、Nginx、ゲーム用途を役割別に作成し、必要最小限のリソースとネットワークだけを割り当てます。

    OUTPUT — サービス別VM・コンテナ
  4. 04

    遠隔接続を追加

    Tailscaleへホストと利用端末を参加させ、同一ネットワーク外から疎通、名前解決、アクセス権を順に確認します。

    OUTPUT — プライベート接続経路
  5. 05

    復旧手順を試す

    設定変更前のスナップショット、別媒体へのデータバックアップ、復元確認を分けて実施します。

    OUTPUT — バックアップと復旧メモ
04

Problems & decisions

苦労したこと

01外から接続できない
PROBLEM

宅内では動作しても、賃貸回線の制約により外部から同じアドレスへ接続できませんでした。

APPROACH

ポート開放を前提にせずTailscaleを導入し、経路、ファイアウォール、名前解決を一段ずつ確認しました。

RESULT

許可した端末だけが参加するプライベートな経路で、外出先から利用できるようにしました。

02どこで失敗しているか分からない
PROBLEM

ブラウザ、Nginx、アプリ、ストレージが連なるため、エラー画面だけでは原因を判断できませんでした。

APPROACH

外側から順に疎通、ポート、プロキシ、アプリ、保存先を確認し、各層のログと時刻を対応させました。

RESULT

再起動を繰り返すのではなく、層ごとに切り分ける手順が定着しました。

03スナップショットをバックアップと思ってしまう
PROBLEM

同じストレージ上のスナップショットだけでは、ディスク故障時に同時に失われます。

APPROACH

設定を戻すスナップショットと、別媒体へ退避するバックアップを別物として運用しました。

RESULT

復元まで試して初めてバックアップが完成するという理解につながりました。

05

Reproduction guide

再現するための手順

未来の自分や、同じものを作りたい人が迷わないように、最短の再現手順を残します。

1. 先に構成図を書く

インターネット、ルーター、Proxmox、各サービス、利用端末の関係と、どこを公開するかを書きます。管理画面の公開は避けます。

2. 小さなサービスから作る

最初は一つの検証用環境を作り、宅内接続、再起動、バックアップを確認します。問題がない状態を基準として残します。

3. Tailscaleを両端へ導入

サーバー側とクライアント側を同じtailnetへ参加させ、IP、端末名、アクセス制御を確認します。TailscaleはグローバルIPを作るものではなく、端末間の安全な経路を作るものとして扱います。

4. 更新と復元を予定に入れる

OSとアプリの更新前にバックアップし、失敗したときの戻し方、管理者アカウント、容量警告を運用メモへ残します。

06

Reflection

振り返り

WHAT I LEARNED

  • 構築よりも、更新・監視・復元を含む運用設計に時間がかかる
  • ネットワーク問題は層を分けて確認すると原因を絞れる
  • 便利さと公開範囲を同時に設計し、管理画面を安易に外へ出さない
NEXT STEP

監視通知とバックアップの世代管理を強化し、障害時に別端末からでも復旧できる運用手順を整備します。

NEXT PROJECT

Research

感情推定研究

→