サーバーモニタリングとメッシュネットワーク
CreateYourVPNがサーバーの健全性をどう見守っているか: 自己チェック、サーバー同士による相互チェックのメッシュネットワーク、そして到達不能なサーバーを自動的にユーザーから隠す仕組み。
サーバーは、最悪のタイミングで裏切ることがあります: サービスがクラッシュする、ホスティング側がマシンを再起動する — あるいはもっと悪いことに、サーバーがユーザーの国でブロックされ、技術的には稼働しているのに到達できなくなる、といったケースです。こうしたことは、ユーザーには決して気づかれるべきではありません。このレッスンでは、CreateYourVPNがどうやってサーバーを見守っているか、そしてサーバーの1つが問題を抱えたときに何が起きるかを解説します。
2層のチェック
システムは、すべてのサーバーを2つの角度から見ています。
1. サーバー自身によるチェック
数分ごとに、各サーバーは状況を報告します: ポート443のトラフィックリスナーは生きているか、VPNサービスは動作しているか。レッスン3で扱ったメトリクスも、同じ報告に含まれて届きます。もし報告の内容が「調子が悪い」というものであれば、そのサーバーは**「サーバーが利用できません」というステータスになります。報告そのものが完全に途絶えた場合は、ステータスは「サーバーからのデータがありません」**になります — マシンの電源が落ちているか、ネットワークを失っている可能性があります。
2. サーバー同士が互いを「ノックする」
自己チェックでは、いちばん厄介なケースを捉えることができません: サーバー自身は健康だと思い込んでいるのに、外からは到達できない — 例えば、そのIPがブロックされている場合です。だからこそ、あなたのすべてのサーバーは相互チェックのメッシュネットワークに組み込まれています: 各サーバーは定期的に、すべての隣接サーバーへの到達を試みます — ちょうどユーザーのアプリがするのと同じように。
そこから先は、「投票」が判断を引き継ぎます:
- 1回のノック失敗には何の意味もありません — ネットワークが一瞬瞬いただけかもしれません。カウントされるのは継続的な失敗の連続だけです。
- サーバーが**「お使いのサーバーから到達できません」**とマークされるのは、複数の独立したサーバーが一貫してそのサーバーに到達できない場合だけです — 1台のサーバーの意見だけで判定が下ることはありません。
- 「信頼できない証人」に対する保護もあります: あるサーバーが突然、隣接サーバーの半分が見えないと訴え始めた場合、問題はそのサーバー自身にある可能性が高く — その投票は破棄されます。
この仕組みこそが、ブロックを検知する鍵です: あるサーバーが、他のサーバーが存在する国でブロックされた場合、その国にいる隣接サーバーはすぐにそのサーバーへの到達に失敗し始め、定足数が形成され、システムはそのサーバーを到達不能とマークします。一方、ブロックのない国にあるサーバーからは引き続き見え続けます — その意見の食い違いによって、状況が明らかになります。
問題のあるサーバーには何が起きるか
これらのステータスは、そのまま負荷分散に反映されます: 「サーバーが利用できません」および「お使いのサーバーから到達できません」のステータスを持つサーバーは、ローテーションから外されます — 新しい接続はそちらに送られなくなり、ユーザーのサブスクリプションでは、同じルート内の健全なサーバーがその場所を引き継ぎます。
同時に、システムは慎重に振る舞います — 「害を及ぼさない」という原則の上に成り立っています:
- ルートが空のままになることは決してありません。 あるルート上のすべてのサーバーが「不調」だと判明した場合でも、システムは空のリストを見せるのではなく、その時点でいちばんましな選択肢をユーザーに提供します — さもないと、アプリはサーバーが消えたと判断して、消去してしまうためです。
- 沈黙は判定ではありません。 「サーバーからのデータがありません」というステータスだけでは、サーバーはローテーションから外されません: 新しいデータがない状態では、システムは軽率な判断を下しません。
すべては自然に回復する
どのステータスも永遠に「貼り付いた」ままになることはありません — 状態は常に、新しいデータから再判定されます:
- サーバーが再び正常な報告を送るようになる → 「サーバーが利用できません」が解除される。
- 隣接サーバーが再び到達できるようになる → 失敗の連続がリセットされ、「お使いのサーバーから到達できません」というマークが消える。
- 報告が再開する → 「サーバーからのデータがありません」が消える。
サーバーを修復する(あるいはブロックが解除されるのを待つ)だけで、サーバーは自ら再びサービスに復帰します。手動で「もう一度オンにする」必要はありません。
パネルのどこで確認できるか
任意のユーザーのカードを開き → そのユーザーのサーバーリストを見てください: 各サーバーの横にステータスドットがあり、何か問題があるときは — 理由を示すキャプションが表示されます: 「サーバーが利用できません」「お使いのサーバーから到達できません」(あなたのサーバーのうち何台が到達できていないかも表示されます)、または「サーバーからのデータがありません」。間接的なサインは、サーバーカードにも現れます: メトリクスに付く「古いデータ」バッジや「データなし — エージェントが応答していません」です。
メッシュチェックは、極めて控えめです: ごく小さなプローブ通信で、1日 あたりの通信量に厳格な上限が設けられています — サーバーのトラフィックや パフォーマンスに影響を与えることはありません。
要点まとめ
- 2層の管理: サーバーは自分自身をチェックし、メッシュ上の隣接サーバーは外側からそのサーバーをチェックする。
- ブロックは複数のサーバーによる「投票」で検知される — 一時的な不調にパニックになることはない。
- 問題のあるサーバーはローテーションから外れ、ユーザーは気づかないうちに健全なサーバーへ移動する。
- すべては自然に回復する: サーバーが復活した瞬間、自動的に復帰する。
次のレッスン
インフラは自分自身を修復する術を知っていますが、別途しっかり守るべきものが1つあります — あなたのユーザーベースです。