Azure Load Balancer のアルゴリズム

Azure Load Balancer は、Azure の最もパフォーマンスの高いロード バランサーであり、待ち時間を非常に低く抑えることができます。 Azure Load Balancer の詳細については、「Azure Load Balancer の概要」または Azure Load Balancer コンポーネントを参照してください。

Azure Load Balancer では、負荷分散アルゴリズムとして、タプルベースのハッシュを利用します。

負荷分散アルゴリズム

ロードバランシングルールを作成することで、ロードバランサーのフロントエンドからバックエンドのプールへインバウンドトラフィックフローを分散させることができます。 ロード バランサーの正常性プローブが正常なバックエンド エンドポイントを示している場合は、バックエンド インスタンスを使用して新しいトラフィック フローを受信できます。

5タプルフロー分布

デフォルトでは、Azure Load Balancerは個別のバイトではなく5タプルのハッシュを使ってインバウンドフローを分散します。 5つのフィールドは以下の通りです:

  • 送信元 IP アドレス
  • 送信元ポート
  • 宛先 IP アドレス
  • 宛先ポート
  • IPプロトコル

他の分布モードやアルゴリズムの詳細については、 ハッシュベース分布を参照してください。

2 タプルまたは 3 タプルベースの負荷分散を使用するセッション アフィニティ分散モードを使用することもできます。

レイヤー4とTLSの挙動

Azure Load Balancerはレイヤー4で動作し、TCPおよびUDPアプリケーションをサポートしています。 フローのクローズや発生、アプリケーションペイロードの検査、HTTPやHTTPSヘッダーの書き換え、アプリケーション層ゲートウェイ機能の提供、TLSのオフロードなどは行いません。 トラフィックをバックエンドインスタンスに誘導する際にTCPおよびUDPのフローヘッダーを書き換え、プロトコルやTLSのハンドシェイクはクライアントと選択したバックエンドインスタンス間で直接行われます。 バックエンドVMでTLSを終了させることで、TLSセッション容量はバックエンドプール内のVMの種類や数に応じてスケールします。

送信元IPアドレスの保存

バックエンドVMは受信フローに対して応答を生成し、フローがそのVMに到達した際に元の送信元IPアドレスが保持されます。 たとえば、TCP ハンドシェイクは、クライアントと選択されたバックエンド VM との間で行われます。 したがって、フロントエンドへの接続性を正しく検証することは、少なくとも1台のバックエンドVMへの接続性を検証することになります。

次のステップ