ロードバランシングに DNS を使用し、フェイルオーバーにフローティング IP を使用する
DNS SRV 機能をサポートする IP テレフォニークライアントは、クライアントをさまざまな SBC/PBX にロードバランシングすることで、インフラストラクチャに組み込まれている冗長性を効率的に使用できます。
図 11: DNS SRV レコードを使用した SIP クライアントのロードバランス
図 11 は、SRV レコードを使用して SIP トラフィックのロードバランスを行う方法を示しています。SRV 標準をサポートする IP テレフォニークライアントは、SRV タイプの DNS レコードで sip._<transport protocol> プレフィックスを検索します。この例では、DNS の回答セクションに、異なる AWS アベイラビリティーゾーンで実行されている PBX が両方とも含まれています。ただし、SRV レコードには、エンドポイント URI に加えて、次の 3 つの追加情報が含まれます。
-
最初の数字は優先度です (上の例では 1)。高い優先度よりも低い優先度が優先されます。
-
2 番目の数値はウェイトです (上の例では 10)。
-
3 番目の数字は使用するポートです (5060)。
両方の PBX サーバーで優先度が同じ (1) であるため、クライアントはウェイトを使用して 2 つの PBX 間のロードバランスを行います。この場合、ウェイトが同じであるため、SIP トラフィックは 2 つの PBX 間で均等にロードバランスされる必要があります。
DNS はクライアントのロードバランシングに適したソリューションですが、DNS の「A」レコードを変更/更新してフェイルオーバーを実装するのはどうでしょうか。 この方法は、クライアントノードと中間ノード内の DNS キャッシュの動作に整合性が取れないため、推奨されません。SIP ノードのクラスター間の AZ 内フェイルオーバーでより効果的なアプローチは、EC2 IP 再割り当てを使用することです。この再割り当てでは、障害のあるホストの IP アドレスが EC2 API を使用して正常なホストに即座に再割り当てされます。詳細なモニタリングとヘルスチェックソリューションを組み合わせることで、障害が発生したノードの IP 再割り当てにより、トラフィックが正常なホストにタイムリーに転送され、エンドユーザーの中断が最小限に抑えられます。