Azure Load Balancerは、受信トラフィックをバックエンドリソース群に分散させ、アプリケーションのスケーラビリティと可用性を向上させるネットワークサービスです。 その構成要素を理解することで、ロードバランサーのトラフィック分配方法、バックエンドリソースの健全性監視、ワークロードのインバウンドおよびアウトバウンド接続の制御に役立ちます。 この記事では、各コンポーネントとそれが負荷分散にどのように貢献するかについて説明します。
Azure Load Balancerには以下の主要なコンポーネントが含まれています:
- フロントエンド IP の構成
- バックエンド プール
- ヘルス・プローブ
- 負荷分散規則
- 高可用性 (HA) ポート
- 受信 NAT のルール
- アウトバウンド規則
これらのコンポーネントは、Azureポータル、Azure CLI、Azure PowerShell、またはAzure Resource Managerテンプレートを通じてサブスクリプション内で設定します。
フロントエンド IP の構成
フロントエンドのIP設定は、Azure Load BalancerのIPアドレスであり、クライアントの連絡窓口です。 フロントエンドのIPアドレスは、以下のいずれかの種類である場合があります。
- パブリック IP アドレス
- プライベート IP アドレス
IPアドレスの性質によって、作成するロードバランサー の種類 が決まります。 プライベートIPアドレスは内部のロードバランサーを作ります。 パブリックIPアドレスはパブリックロードバランサーを作ります。
| Attribute | パブリック ロードバランサー (Public load balancer) | 内部ロードバランサー |
|---|---|---|
| フロントエンド IP の構成 | パブリック IP アドレス | プライベート IP アドレス |
| 説明 | パブリック ロード バランサーは、受信トラフィックのパブリック IP およびポートを、VM のプライベート IP およびポートにマップします。 ロードバランサーはVMからのレスポンストラフィックに対して逆にトラフィックをマッピングします。 ロードバランシングルールは、特定の種類のトラフィックを複数のVMやサービスに分散させます。 例えば、ウェブリクエストトラフィックの負荷を複数のウェブサーバーに分散させます。 | 内部ロードバランサーは仮想ネットワーク内のリソースにトラフィックを分配します。 Azureは仮想ネットワークのロードバランスされたフロントエンドIPアドレスへのアクセスを制限します。 AzureはフロントエンドのIPアドレスや仮想ネットワークをインターネットエンドポイントに直接公開しないため、内部のロードバランサーはインターネットからの受信トラフィックを受け入れることができません。 社内の基幹業務アプリケーションは Azure で実行され、Azure 内またはオンプレミス リソースからアクセスされます。 |
| サポートされている SKU | Standard | Standard |
Important
Basic Load Balancer は 2025 年 9 月 30 日に廃止されました。 詳細については、公式発表を参照してください。 現在 Basic Load Balancer を使用している場合は、できるだけ早くStandard Load Balancerにアップグレードしてください。 アップグレードのガイダンスについては、「Basic Load Balancerからのアップグレード - ガイダンス」をご覧ください。
ロードバランサーは複数のフロントエンドIPを持つことができます。 複数のフロントエンドの詳細については、こちらをご覧ください。
バックエンド プール
バックエンドプールとは、仮想マシンスケールセット内の仮想マシンやインスタンスのグループで、受信リクエストに対応するものです。 コスト効率よくスケールし、大量の入受信トラフィックに対応するために、バックエンドプールにインスタンスを増やしましょう。
Load Balancerはインスタンスを拡大・縮小すると自動的に再設定されます。 バックエンド プールの VM を追加または削除すると、その他の操作なしに、ロード バランサーが再構成されます。 バックエンド プールのスコープは、1 つの仮想ネットワーク内の任意の仮想マシンです。
バックエンドプールは ネットワークインターフェースやIPアドレスを使ってインスタンスを追加することをサポートしています。 VMはパブリックロードバランサーのバックエンドプールに接続するのにパブリックIPアドレスを必要としません。 VMは停止状態でもロードバランサーのバックエンドプールに接続できます。 また、複数のバックエンドプールを異なるインスタンスグループで設定することも、単一のロードバランサーに対応可能です。 複数のロードバランシングルールを作成し、それぞれ異なるバックエンドプールを対象にすることで、ロードバランサーのフロントエンドポートやプロトコルに基づいて異なるバックエンドリソースセットにトラフィックを分散させることができます。
ヘルス・プローブ
ヘルスプローブはバックエンドプール内のインスタンスの健康状態を確認します。 ロードバランサーを作成する際には、それを使うためのヘルスプローブを設定します。 このヘルスプローブは、インスタンスが健康でトラフィックを処理できるかどうかを判断します。
健康プローブの不健康な閾値を設定できます。 プローブが応答しない場合、ロードバランサーは不健康なインスタンスへの新しい接続の送信を停止します。 不健康なインスタンスへの確立されたTCP接続は、以下のいずれかのイベントが発生するまで続きます。
- アプリケーションはフローを終了させます。
- アイドルタイムアウトが発生します。
- VMがシャットダウンします。
単一のインスタンスが不健康の場合、既存のUDPフローはバックエンドプール内の別の健全なインスタンスに移動します。 すべてのインスタンスが不健康であれば、既存のすべてのUDPフローは終了します。
Load BalancerはエンドポイントごとにTCP、HTTP、HTTPSといった異なるヘルスプローブタイプを提供しています。 詳しくはLoad Balancerヘルスプローブをご覧ください。
Basic Load Balancer(引退)はHTTPSプローブをサポートしていません。 単一のインスタンスのプローブがダウンしても、そのインスタンスへの確立されたTCP接続は継続されます。 すべてのインスタンスのプローブがダウンすると、Basic Load Balancerはバックエンドプールへの既存のTCPフローをすべて終了させます。
負荷分散規則
ロードバランサールールは、バックエンドプール内の すべての インスタンスに着信トラフィックをどのように分配するかを定義します。 このルールはフロントエンドのIP設定とポートを複数のバックエンドIPアドレスやポートにマッピングします。 ロードバランサーのルールは、インバウンドトラフィックにのみ適用されます。
たとえば、フロントエンド IP からバックエンド インスタンスのポート 80 にトラフィックを送信するロード バランサー規則をポート 80 に使用します。
図:負荷分散ルール
高可用性ポート
高可用性(HA)ポートルールは、 protocol を All に設定し、 port を 0に設定するロードバランサールールです。 単一のHAポートルールは、内部Standard Load Balancerのすべてのポートに到達するすべてのTCPおよびUDPフローをロードバランスします。 HAポートを有効にすると、このルールはICMPトラフィックもサポートします。
ロードバランサーは以下の5タプル接続に基づいてフローごとの負荷分散決定を行います。
- 送信元 IP アドレス
- 送信元ポート
- 宛先 IP アドレス
- 宛先ポート
- プロトコル
HAポートは、ファイアウォールやVPN、SD-WAN デバイスなどのネットワーク仮想アプライアンス(NVA)など、多くのポートで高可用性かつスケールが求められる重要なシナリオをサポートします。 このような場合、各ポートごとに個別の負荷分散ルールを定義するのは現実的ではありません。 ロードバランサーは接続フローごとにトラフィックを分配し、ヘルスプローブを使って健康なインスタンスにのみトラフィックを送ります。
Basic Load Balancer(廃止)やパブリックロードバランサーはHAポートをサポートしていません。 HAポートは、ポート固有のルールが必要な一般的なウェブやアプリケーションのワークロードには対応していません。
図:HAポートルール
HA ポートの詳細についてはこちらをご覧ください。
受信 NAT のルール
インバウンドNATルールは、フロントエンドのIPアドレスとポートの組み合わせに到達する着信トラフィックを転送します。 このルールは、このトラフィックをバックエンドプール内の 特定の 仮想マシンまたはインスタンスに送信します。 ポートフォワーディングはロードバランシングと同じハッシュベースの分布を使用します。
図:インバウンド NAT 規則
アウトバウンド規則
アウトバウンドルールは、バックエンドプールが識別するすべての仮想マシンやインスタンスに対してアウトバウンドネットワークアドレス変換(NAT)を設定します。 このルールを用いることで、バックエンドのインスタンスはインターネットや他のエンドポイントと通信(アウトバウンド)を行うことができます。
送信接続と規則の詳細については、こちらをご覧ください。
Basic Load Balancer(引退)はアウトバウンドルールをサポートしていません。
図:アウトバウンド規則
制限事項
- ロードバランサー の制限について学びましょう。
- ロード バランサーは特定の TCP または UDP プロトコルに対する負荷分散とポート フォワーディングを行います。 ロードバランシングルールや受信NATルールは、ICMPを含む他のIPプロトコルをサポートしませんが、内部のStandard Load BalancerがHAポートを有効にするとICMPトラフィックをサポートします。 詳細は HAポートの概要をご覧ください。
- Load Balancer のバックエンド プールをプライベート エンドポイントで構成することはできません。
- バックエンドのVMから内部ロードバランサーのフロントエンドへのアウトバウンドフローが失敗します。
- ロード バランサーの規則は、2 つの仮想ネットワークにまたがることはできません。 すべてのロード バランサーのフロントエンドとそのバックエンド インスタンスは、1 つの仮想ネットワーク内に存在する必要があります。
- ロードバランシングルールはIPフラグメントの転送をサポートしていません。 ロードバランシングルールはUDPおよびTCPパケットのIP断片化をサポートしていません。
- 1つの可用性セットには、公開ロードバランサー(NICベース)と内部ロードバランサー(NICベース)を1つだけ設定できます。 ただし、この制約は IP ベースのロード バランサーには適用されません。