入口と、処理の本体を分ける

第1回で、250円のサーバーへ引っ越しました。次は、500円のプランに上げ、そこからVPSへ移ります。

ただし、VPSにすべてを載せるつもりはありません。VPSは入口、処理の本体は自宅のNAS。外からのアクセスはVPSが受け、奥にある自宅のNASへ流します。今回は、その形にする理由と段取りです。

VPSは「入口の処理能力を持つインフラ」

安いVPSは、メモリが1GB程度しかありません。これにデータベースもアプリケーションも全部載せようとすると、すぐに足りなくなります。

でも、入口の仕事だけなら話は別です。入口がやることは、次のように限られています。

  • 外からのアクセスを受け付ける。
  • 通信を暗号化する(HTTPSの証明書を持つ)。
  • リクエストを、奥のサーバーへ振り分ける。
  • 明らかにおかしいアクセスを、奥へ通す前に止める。
  • 画像やCSSのような、変わらないファイルを手前で返す。

こうした仕事は、リバースプロキシと呼ばれるソフトウェアが軽い負荷でこなします。重い計算もデータの保存もしないので、少ないメモリでも務まります。VPSは処理をするための場所ではなく、処理の手前で交通整理をする場所だと割り切ります。

入口と、処理の本体の役割分担
 入口(VPS)本体(自宅のNAS)
外から見えるか見える見えない
やること受付、暗号化、振り分け、遮断アプリケーションの処理、データの保存
必要な性能小さくてよい大きいほうがよい
増やし方安いVPSを複数契約するNASを1台ずつ足していく

なぜ、自宅を直接公開しないのか

自宅のNASで動かすなら、自宅の回線で直接公開すればよいのでは、と思うかもしれません。私がそうしない理由は三つあります。

自宅の住所を、攻撃の的にしない

直接公開すれば、自宅の回線のIPアドレスが外に出ます。そこは、NASだけでなく、家の中のあらゆる機器につながっている場所です。外から見えるのはVPSだけにして、自宅は奥に隠します。

家庭用の回線の制約を避ける

家庭用の光回線は、IPアドレスが変わることがあり、そもそも外から入ってくる通信を受けられない契約もあります。自宅のNASの側からVPSへつなぎに行く形にすれば、こうした制約に左右されません。このつなぎ方が、第3回で扱うトンネルです。

入口を取り替えられるようにする

入口が自宅と切り離されていれば、VPSの会社を変えても、VPSを増やしても、奥のNASには手を入れずに済みます。

レンタルサーバーから、少しずつ移す

いきなり全部を自宅のNASに移すと、何かあったときにすべてが止まります。そこで、しばらくはレンタルサーバーも残し、VPSから両方へ振り分けます。

  1. VPSを入口に置き、最初はすべてのアクセスをレンタルサーバーへ流す。見た目は何も変わらない。
  2. 自宅のNASで、一部の機能やサイトを動かし始める。
  3. VPSの振り分けを変えて、その部分だけをNASへ流す。
  4. 問題がなければ、NASへ流す範囲を少しずつ広げる。
  5. レンタルサーバーの契約が切れる頃には、すべてをNASで動かす。

この形のよいところは、戻せることです。NASで不具合が出たら、VPSの振り分けを元に戻すだけで、レンタルサーバーでの運用に戻れます。移行の途中でも、サービスは止まりません。

そして、すべてをNASに移したあとも、共用サーバーの契約は安いプランで残し、データベースの写しを送るバックアップの置き場所にします(ノート「止めないことと、失わないこと」)。

だから、NASで動かせる部分は、なるべく早めにNASへ移しておくつもりです。契約の切れ目で慌てて移すより、余裕のあるうちに移して、問題を先に出しておくほうが安全です。

自宅の回線は足りるのか

処理の本体を自宅に置くと、すべての通信が自宅の回線を通ります。家庭用の回線で足りるのかという心配はあります。

ただ、いまの規模では、すぐに回線がボトルネックになるとは考えていません。画像やCSSのような変わらないファイルは入口のVPSで返せるので、自宅まで来る通信はそのぶん減ります。足りなくなったら、家庭用の回線を複数契約する手もあります。回線の話は、考察の「民生の光回線は、どこまで耐えるか」で詳しく扱います。

この段階でやること

  1. 250円のプランから500円のプランへ上げる。
  2. VPSを契約し、リバースプロキシを入口として置く。
  3. 最初はすべてのアクセスをレンタルサーバーへ流し、入口が正しく動くことを確かめる。
  4. 自宅のNASで動かす部分を決め、VPSからそこへ流す。
  5. 振り分けを元に戻す手順を、あらかじめ確かめておく。

TODO:実際に契約したVPSの構成と、最初にNASへ移した機能の記録をここに追記する(事業者名・IPアドレス・ポート番号などは公開しない)。

VPSと自宅のNASを、どうやって安全につなぐのか。それが次の課題です。