共用サーバー・格安VPS・自宅NASの役割分担――個人の「持ち家」は三層で建てる
第4ページでは「借地から持ち家へ」を掲げた。ただ、すべてを自宅に置くのも、すべてを借りるのも極端だ。個人や小さな事業者にとって現実的なのは、役割ごとに置き場所を分けることだ。前のページの「誰が直すのか」とあわせて考えると、分け方の理由がはっきりする。
1. 三層の役割
| 置き場所 | 向いている処理 | 直す人 | 主な制約 |
|---|---|---|---|
| 共用レンタルサーバー | HTML・画像、PHP、WordPress、フォーム、メール | 事業者(PHP本体) | 常駐するプログラムを動かせない |
| 格安VPS | Node.jsのAPI、データベース、定期処理、WebSocket | 自分 | OSから更新・監視まで自分の責任 |
| 自宅NAS・自宅サーバー | バックアップ、内部向けの処理、実験、ローカルLLM | 自分 | 停電、家庭の回線、外部公開のリスク |
表示とPHPのように「事業者に直してもらえる部分」は共用サーバーに、自分で面倒を見る必要がある処理はVPSと自宅にまとめる。こうしておくと、緊急の更新が来たときに、自分が手を動かす範囲がはっきりする。
2. Node.jsは共用サーバーに向かない
PHPはリクエストごとに動いて終わるが、Node.jsのAPIはプログラム自身が待ち受けて動き続ける。多くの共用サーバーはこの常駐を禁止しているか、動作を保証していない。Node.jsを使うなら、VPSに置くのが基本だ。
- Nodeは
127.0.0.1で待ち受け、外に向けたポートは開けない。外とのやりとりはNginxやトンネルを通す - PM2やsystemdで常駐させ、落ちても自動で立ち上がるようにする
- ブラウザから直接VPSを呼ばせず、共用サーバー側のPHPが代わりに呼ぶ形にすると、守る入口が少なくなる
- データベースの接続情報は共用サーバーに置かず、VPSのAPI経由で読み書きする
外に公開するAPIならCloudflare Tunnel、自分の機器どうしをつなぐだけならTailscaleが使いやすい。どちらも、自宅のルーターでポートを開けずに済む。
3. 自宅NASを本番のデータベースにしない
「表示は共用サーバー、データベースはトンネル越しに自宅のNAS」という構成も組めなくはない。しかし、公開するサイトの本体にするには弱点が多い。
- 問い合わせのたびに往復の時間がかかり、画面の表示が遅くなる
- 家庭の回線の上り速度が、そのままサイトの速度になる
- ルーターの再起動やNASの更新、停電のたびに、公開サイトが止まる
落としどころは、本番のデータベースはVPS、自宅NASはバックアップ・分析・時間のかかる裏方の処理だ。アクセスが少なく、書き込みもほとんどない個人用の仕組みなら、NASにデータを置いても成り立つ。
4. 月500円のVPSで足りるのか
メモリ512MB程度の最安クラスでも、Node.jsのAPIと小さなSQLiteくらいなら動く。ただし、Node.js、Nginx、PostgreSQL、Redisを1台に全部載せるなら、メモリは1〜2GBほしい。最初から大きなプランを借りる必要はなく、使い方に合わせて上げていけばいい。
プランを上げる目安
- スワップ(メモリの不足をディスクで補う動き)が常に起きている、メモリ不足でプログラムが落ちる
- アクセスが多い時間に、CPUの負荷が高いまま下がらない
- 同じ重い問い合わせがログに何度も出る
- ログやDockerのイメージで、ディスクの使用率が8割を超える
最初に決めておくこと
- 設定ファイル(Docker Compose、systemd、Nginx)はGitで管理し、作り直せるようにしておく
- データベースの接続先は
DATABASE_URLのような設定で渡し、SQLiteから別のデータベースへ移りやすくしておく - VPSの外へ自動でバックアップを取り、一度は戻せるか試しておく
- 死活監視と、メモリ・ディスクの最低限の監視を入れる
5. 格安の共用サーバーを何台も使うなら
VPSを入口にして、複数の安い共用サーバーへ振り分ける形もありうる。ただし、同じサイトを複数台に複製して負荷を分けようとすると、ログインの情報やデータベースが台ごとに分かれてしまい、かえって管理が難しくなる。
やるなら、サイトや機能ごとに置き場所を分ける形がいい。あるサイトはA社、別のサイトはB社、APIはVPS、と分けておけば、一社の障害や値上げの影響もそのサイトだけで済む。これは、一つの地主に頼りきらないという第1部の考え方を、小さく実践することでもある。
6. 月に一度の点検
三層に分けても、VPSと自宅の部分は自分が管理者だ。月に一度、次の三つだけでも習慣にしておけば、個人のインフラとしては十分に堅くなる。
- OSとソフトの更新
- バックアップが取れているか、戻せるかの確認
- ログに見慣れないアクセスやエラーがないかの確認
出典・参考
※内容は記載の日付時点の報道・公表資料によるものです。脆弱性の修正状況は、必ず契約先や配布元の最新の告知で確認してください。