WebRTC と SIP によるスケーラビリティと HA のためのロードバランシング
ラウンドロビン、アフィニティ、レイテンシーなどの定義済みルールに基づいてアクティブインスタンスのクラスターをロードバランシングする設計パターンは、HTTP リクエストのステートレスな性質によって広く普及しています。実際、RTC アプリケーションコンポーネントが多い場合は、ロードバランシングは実用的な選択肢です。
ロードバランサーは、目的のアプリケーションに対するリクエストのリバースプロキシまたはエントリーポイントとして機能します。ロードバランサー自体は、複数のアクティブノードで同時に実行するように構成されています。ロードバランサーは、任意の時点で、定義されたクラスター内のアクティブノードの 1 つにユーザーリクエストを送信します。ロードバランサーはターゲットクラスター内のノードに対してヘルスチェックを実行し、ヘルスチェックに失敗したノードには受信リクエストを送信しません。したがって、ロードバランシングによって基本的な高可用性が実現されます。また、ロードバランサーは 1 秒未満の間隔ですべてのクラスターノードに対してアクティブおよびパッシブヘルスチェックを実行するため、フェイルオーバーにかかる時間はほぼ瞬時です。
どのノードを指定するかは、ロードバランサーに定義されているシステムルールに基づいて決定されます。これには以下が含まれます。
-
ラウンドロビン
-
セッションまたは IP アフィニティ。1 つのセッション内または同じ IP からの複数のリクエストが、クラスター内の同じノードに送信されるようにします。
-
レイテンシーベース
-
ロードベース