入口と、処理の本体を分ける
第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から両方へ振り分けます。
- VPSを入口に置き、最初はすべてのアクセスをレンタルサーバーへ流す。見た目は何も変わらない。
- 自宅のNASで、一部の機能やサイトを動かし始める。
- VPSの振り分けを変えて、その部分だけをNASへ流す。
- 問題がなければ、NASへ流す範囲を少しずつ広げる。
- レンタルサーバーの契約が切れる頃には、すべてをNASで動かす。
この形のよいところは、戻せることです。NASで不具合が出たら、VPSの振り分けを元に戻すだけで、レンタルサーバーでの運用に戻れます。移行の途中でも、サービスは止まりません。
そして、すべてをNASに移したあとも、共用サーバーの契約は安いプランで残し、データベースの写しを送るバックアップの置き場所にします(ノート「止めないことと、失わないこと」)。
だから、NASで動かせる部分は、なるべく早めにNASへ移しておくつもりです。契約の切れ目で慌てて移すより、余裕のあるうちに移して、問題を先に出しておくほうが安全です。
自宅の回線は足りるのか
処理の本体を自宅に置くと、すべての通信が自宅の回線を通ります。家庭用の回線で足りるのかという心配はあります。
ただ、いまの規模では、すぐに回線がボトルネックになるとは考えていません。画像やCSSのような変わらないファイルは入口のVPSで返せるので、自宅まで来る通信はそのぶん減ります。足りなくなったら、家庭用の回線を複数契約する手もあります。回線の話は、考察の「民生の光回線は、どこまで耐えるか」で詳しく扱います。
この段階でやること
- 250円のプランから500円のプランへ上げる。
- VPSを契約し、リバースプロキシを入口として置く。
- 最初はすべてのアクセスをレンタルサーバーへ流し、入口が正しく動くことを確かめる。
- 自宅のNASで動かす部分を決め、VPSからそこへ流す。
- 振り分けを元に戻す手順を、あらかじめ確かめておく。
TODO:実際に契約したVPSの構成と、最初にNASへ移した機能の記録をここに追記する(事業者名・IPアドレス・ポート番号などは公開しない)。
VPSと自宅のNASを、どうやって安全につなぐのか。それが次の課題です。