プロキシのVIPフェイルオーバーで何が残るか
プロキシ入口の復旧と、確立済みCONNECTトンネルおよびWebサイト側の出口アドレスの存続を切り分けます。
フローティングアドレスはプロキシ設定を安定させます。アクティブ機が故障しても、クライアントは同じホスト名やIPを使い続けられます。これは有用な可用性です。ただし進行中のダウンロードは停止する可能性があります。
すでにCONNECT内にあるHTTPSリクエストを考えます。アクティブなプロキシはクライアント側のTCP接続とWebサイトへの別の接続を保持します。さらに、これらのストリームを結合するアプリケーション状態も保持します。
アドレスを待機機へ移すだけでは、TCP制御ブロックもそのリレー状態も移りません。新しい所有者は新規接続を受け付けられますが、旧所有者が確立したバイトストリームを継続することはできません。
| 期待 | 通常のアドレスフェイルオーバーで満たされるか |
|---|---|
| 設定済みの入口を1つ保つ | それが本来の利点です |
| 確立済みのCONNECTストリームを継続する | 追加の状態保持機構が必要です |
| 外向けのパブリックIPを同じに保つ | 出口ルーティングとNAT次第です |
| 中断したアプリケーション操作を安全に再実行する | 操作とクライアント次第です |
VRRPは選出とアドレスの所有を定義します。プロキシプロセスのレプリケーション用プロトコルではありません。他の高可用性ソフトウェアを使う配備でも、明示的に多くを提供しない限り同じ区別が必要です。
ヘルスチェックが実際に何を観測しているかを見直してください。プロキシサービス、DNS、上流ルートが故障していても、告知には応答できるマシンがあります。逆に過敏すぎるチェックは不要な切り替えを招きます。
クライアント側の復旧も重要です。新しいブラウザリクエストは簡単に再接続できますが、消費済みのボディを伴うアップロードや冪等でないAPI操作はアプリケーション固有の扱いが必要な場合があります。待機機経由で新規リクエストが成功するだけで、見えないフェイルオーバーを約束してはいけません。