Structural Analysis
自宅サーバーかVPSで、データも自分で管理する——Claudeと一緒に自分のインフラを持つ
サーバーは「自分が触っていない間も働き続ける裏方」だ。本書の前提は「自宅サーバーかVPSで、データも自分で管理する」——データは他社のクラウドサービスに預けず、自分がrootを持つ機械の上で管理する。GUIを持たないテキストだけの世界はClaudeと一緒に学ぶ方式と最高に相性が良い。その前提と理由を、この章で整える。
本書の前提は「自宅サーバーかVPSで、データも自分で管理する」。自宅・VPS・大手クラウドの三つを費用と責任の地図にして見比べ、自分はどちらで始めるかを数字で決める。データ管理を他社サービスに預ける道を本書が選ばない理由も、ここではっきりする。
サーバーには、デスクトップ編で入れたものの大半が要らない。netinstイメージとtaskselの一画面で、SSHサーバーと標準ユーティリティだけのDebianを作る。本編第7章との差分だけを扱い、IPアドレスの固定までを通す章。
サーバーにはもうモニタを繋がない。手元のPCから全てを行う。その出入り口がSSHだ。鍵を作り、パスワード認証を閉じ、玄関を狭める。締め出しを防ぐ作法と、日々の出入りを快適にする設定までを、Claudeと一緒に固める章。
サーバーを公開した瞬間、世界中のbotが扉を叩き始める。攻撃面という考え方、ufwによる最小許可、unattended-upgradesによる更新の自動化、fail2banという番犬——守りの基本を、ログをClaudeに渡しながら一つずつ組み立てる。
サーバーの中身は結局「systemdが面倒を見るプロセスの集まり」だ。systemctlの基本動詞、journalctlでのログの読み方、自作スクリプトをサービスにするunit fileの書き方、systemd timerによる定期実行——「サービス」という一つの単位で、起動も停止もログも障害対応も扱えるようにする。
サーバー本体は作り直せる。作り直せないのはデータだけだ。だからデータの置き場所こそ、最初に設計すべき土台になる。ファイルの山とデータベースの違いを押さえ、SQLiteとPostgreSQLの守備範囲を分け、Debian 13にPostgreSQL 17を入れて自分のデータベースを持つ——その土台をこの章で据える。
コンテナを使わないこの本では、アプリは「ふつうのディレクトリ + venv + systemd」で動かす。だからこそ、どこに何を置くかという規約が、コンテナの代わりに秩序を作る。ディレクトリ構成を決め、PythonとFastAPIで最小のAPIを建て、systemdのサービスにして、第7章のデータベースの上で動かす——コードはClaudeに書かせ、あなたは構成を決めて動かして守る。
ここまではすべてLAN内で安全に練習できた。公開は不可逆に近い決断だ——攻撃面が一気に変わる。ドメイン、リバースプロキシ、TLS証明書という三点セットを押さえ、自宅回線の難所(CGNAT)まで含めて、自分の状況に合った公開経路をClaudeと一緒に設計する。「公開しない」も立派な選択だ。
サーバー本体は使い捨て、データだけが本体だ。OSもサービスも数十分で作り直せるが、データだけは作り直せない。何を守るかを決め、resticで暗号化バックアップを取り、systemd timerで自動化し、そして復元を実際に演習する——「復元したことのないバックアップは無いのと同じ」という原則を、Claudeと一緒に手で確かめる章。
サーバーは作って終わりではなく、生き物のように手入れして育てるものだ。だが毎日張り付く必要はない。週に15分の定例で回る設計、月次の保守のリズム、壊れたときの型、そして次の一手——一台のサーバーを長く育てる作法を、Claudeを横に置いて整える。サーバー編の結びとして、「自分のインフラを持つ」とは何かを振り返る。
答えを渡すのではなく、問いを立てる作法を渡す。
それがClaudeと一緒に学ぶ時代の、最も長く残るギフトになる。
Explore
第1章から、順に読み進めよう。
迷ったら、Claude に「ここまで読んで、自分はどうすべきか」と聞けばいい。