Azure Load Balancer の概要Azure Load Balancer overview

Azure Load Balancer は、アプリケーションに高可用性と優れたネットワーク パフォーマンスを提供します。Azure Load Balancer delivers high availability and network performance to your applications. Azure Load Balancer は、負荷分散セットで定義されているサービスの正常なインスタンス間で着信トラフィックを分散する、レイヤー 4 (TCP、UDP) ロード バランサーです。It is a Layer 4 (TCP, UDP) load balancer that distributes incoming traffic among healthy instances of services defined in a load-balanced set.

重要

Azure Load Balancer では、Basic と Standard の 2 種類がサポートされています。Azure Load Balancer supports two different types: Basic and Standard. この記事では、Basic Load Balancer について説明します。This article discusses Basic Load Balancer. Basic Load Balancer は一般公開されていますが、Standard Load Balancer は現在パブリック プレビュー中です。Basic Load Balancer is generally available, whereas Standard Load Balancer is currently in Public Preview. Standard Load Balancer について詳しくは、Standard Load Balancer の概要に関するページをご覧ください。For more information about Standard Load Balancer, see Standard Load Balancer Overview.

Azure Load Balancer は次のように構成できます。Azure Load Balancer can be configured to:

  • 仮想マシンへの着信インターネット トラフィックを負荷分散します。Load balance incoming Internet traffic to virtual machines. この構成は、 インターネットに接続する負荷分散と呼ばれます。This configuration is known as Internet-facing load balancing.
  • 仮想ネットワーク内の仮想マシン間、クラウド サービス内の仮想マシン間、クロスプレミスの仮想ネットワーク内のオンプレミスのコンピューターと仮想マシン間で、トラフィックを負荷分散します。Load balance traffic between virtual machines in a virtual network, between virtual machines in cloud services, or between on-premises computers and virtual machines in a cross-premises virtual network. この構成は、 内部負荷分散と呼ばれます。This configuration is known as internal load balancing.
  • 外部トラフィックを特定の仮想マシンに転送します。Forward external traffic to a specific virtual machine.

インターネットから到達できるようにするには、クラウド内のすべてのリソースにパブリック IP アドレスが必要です。All resources in the cloud need a public IP address to be reachable from the Internet. Azure のクラウド インフラストラクチャでは、ルーティング不可能な IP アドレスをリソースに使用します。The cloud infrastructure in Azure uses non-routable IP addresses for its resources. インターネットとの通信には、ネットワーク アドレス変換 (NAT) とパブリック IP アドレスが使用されます。Azure uses network address translation (NAT) with public IP addresses to communicate to the Internet.

Load Balancer の機能Load Balancer features

  • ハッシュベースの分散Hash-based distribution

    Azure Load Balancer は、ハッシュベースの分散アルゴリズムを使用します。Azure Load Balancer uses a hash-based distribution algorithm. 既定では、ソース IP、ソース ポート、接続先 IP、接続先ポート、プロトコルの種類から成る 5 タプル ハッシュを使用して、使用可能なサーバーにトラフィックをマップします。By default, it uses a 5-tuple hash composed of source IP, source port, destination IP, destination port, and protocol type to map traffic to available servers. これは、トランスポート セッション でのみ持続性を提供します。It provides stickiness only within a transport session. 同じ TCP セッションまたは UDP セッション内のパケットは、負荷分散されたエンドポイントの背後にある同じインスタンスに送信されます。Packets in the same TCP or UDP session will be directed to the same instance behind the load-balanced endpoint. クライアントが接続を閉じてから開き直すか、同じソース IP から新しいセッションを開始すると、ソース ポートが変更されます。When the client closes and reopens the connection or starts a new session from the same source IP, the source port changes. そのため、トラフィックは別のデータセンターの別のエンドポイントに送信される可能性があります。This may cause the traffic to go to a different endpoint in a different datacenter.

    詳細については、 ロード バランサーの分散モードに関するページをご覧ください。For more details, see Load balancer distribution mode. 次の図は、ハッシュベースの分散を示しています。The following graphic shows the hash-based distribution:

    ハッシュベースの分散

    図 - ハッシュベースの分散Figure - Hash based distribution

  • ポート フォワーディングPort forwarding

    Azure Load Balancer では、受信通信の管理方法を制御できます。Azure Load Balancer gives you control over how inbound communication is managed. この通信には、インターネット ホスト、他のクラウド サービス内の仮想マシン、または仮想ネットワークから開始されたトラフィックが含まれます。This communication includes traffic initiated from Internet hosts, virtual machines in other cloud services, or virtual networks. この制御は、エンドポイントで表されます (入力エンドポイントとも呼ばれます)。This control is represented by an endpoint (also called an input endpoint).

    入力エンドポイントはパブリック ポートでリッスンし、内部ポートにトラフィックを転送します。An input endpoint listens on a public port and forwards traffic to an internal port. 内部エンドポイントと外部エンドポイントには同じポートをマップしたり、別のポートを使用することもできます。You can map the same ports for an internal or external endpoint or use a different port for them. たとえば、パブリック エンドポイントをポート 80 にマップしているときに、Web サーバーがポート 81 をリッスンするように構成できます。For example, you can have a web server configured to listen to port 81 while the public endpoint mapping is port 80. パブリック エンドポイントを作成すると、ロード バランサー インスタンスの作成がトリガーされます。The creation of a public endpoint triggers the creation of a load balancer instance.

    Azure ポータルを使用して作成した場合、リモート デスクトップ プロトコル (RDP) およびリモート Windows PowerShell セッションのトラフィック用に、仮想マシンのエンドポイントが自動的に作成されます。When created using the Azure portal, the portal automatically creates endpoints to the virtual machine for the Remote Desktop Protocol (RDP) and remote Windows PowerShell session traffic. これらのエンドポイントを使用して、インターネット経由で仮想マシンをリモートで管理することができます。You can use these endpoints to remotely administer the virtual machine over the Internet.

  • 自動再構成Automatic reconfiguration

    Azure Load Balancer は、インスタンスがスケール アップまたはスケール ダウンされると、すぐに自身を再構成します。Azure Load Balancer instantly reconfigures itself when you scale instances up or down. たとえば、クラウド サービス内の Web/worker ロールのインスタンス数を増やしたときや、同じ負荷分散セットに仮想マシンを追加したときに、この再構成が行われます。For example, this reconfiguration happens when you increase the instance count for web/worker roles in a cloud service or when you add additional virtual machines into the same load-balanced set.

  • サービスの監視Service monitoring

    Azure Load Balancer では、さまざまなサーバー インスタンスの正常性をプローブできます。Azure Load Balancer can probe the health of the various server instances. プローブで応答できない場合、ロード バランサーは異常なインスタンスへの新しい接続の送信を停止します。When a probe fails to respond, the load balancer stops sending new connections to the unhealthy instances. 既存の接続は影響を受けません。Existing connections are not impacted.

    次の 3 種類のプローブがサポートされています。Three types of probes are supported:

    • ゲスト エージェント プローブ (サービスとしてのプラットフォーム仮想マシンの場合のみ): ロード バランサーは、仮想マシン内のゲスト エージェントを使用します。Guest agent probe (on Platform as a Service Virtual Machines only): The load balancer utilizes the guest agent inside the virtual machine. ゲスト エージェントがリッスンし、インスタンスが準備完了状態の場合 (インスタンスがビジー、リサイクル中、停止中などの状態でない場合) にのみ、HTTP 200 OK 応答を返します。The guest agent listens and responds with an HTTP 200 OK response only when the instance is in the ready state (i.e. the instance is not in a state like busy, recycling, or stopping). エージェントが HTTP 200 OK で応答できない場合、ロード バランサーは、そのインスタンスを応答不能と見なし、インスタンスへのトラフィックの送信を停止します。If the agent fails to respond with an HTTP 200 OK, the load balancer marks the instance as unresponsive and stops sending traffic to that instance. Load Balancer はインスタンスへの ping を続けます。The load balancer continues to ping the instance. ゲスト エージェントが、HTTP 200 で応答する場合は、ロード バランサーはそのインスタンスへのトラフィックの送信を再開します。If the guest agent responds with an HTTP 200, the load balancer will send traffic to that instance again. Web ロールを使用する場合、Web サイト コードは通常、Azure ファブリックやゲスト エージェントでは監視されない w3wp.exe で実行されます。When you're using a web role, your website code typically runs in w3wp.exe, which is not monitored by the Azure fabric or guest agent. つまり、w3wp.exe が失敗 (HTTP 500 応答など) してもゲスト エージェントにレポートされず、ロード バランサーはそのインスタンスがローテーションから除外されたことを認識しません。This means that failures in w3wp.exe (e.g. HTTP 500 responses) will not be reported to the guest agent, and the load balancer will not know to take that instance out of rotation.
    • HTTP カスタム プローブ: このプローブは、既定の (ゲスト エージェント) プローブを上書きします。HTTP custom probe: This probe overrides the default (guest agent) probe. ユーザーはこれを使用して独自のカスタム ロジックを作成し、ロール インスタンスの正常性を判断できます。You can use it to create your own custom logic to determine the health of the role instance. ロード バランサーは、エンドポイントを定期的に調査します (既定では 15 秒ごと)。The load balancer will regularly probe your endpoint (every 15 seconds, by default). タイムアウト期間内 (既定値は 31 秒) にインスタンスが TCP ACK または HTTP 200 で応答した場合は、ローテーション内にあると見なされます。The instance is considered to be in rotation if it responds with a TCP ACK or HTTP 200 within the timeout period (default of 31 seconds). これは、ロード バランサーのローテーションからインスタンスを削除する、ユーザー独自のロジックを実装する場合に役立ちます。This is useful for implementing your own logic to remove instances from the load balancer's rotation. たとえば、インスタンスが CPU の 90% を超えた場合に 200 以外の状態を返すように、インスタンスを構成できます。For example, you can configure the instance to return a non-200 status if the instance is above 90% CPU. w3wp.exe を使用する Web ロールの場合も、Web サイト コードが失敗するとプローブに 200 以外の状態が返されるため、Web サイトの自動監視が行われます。For web roles that use w3wp.exe, you also get automatic monitoring of your website, since failures in your website code return a non-200 status to the probe.
    • TCP カスタム プローブ: このプローブは、定義済みプローブ ポートへの正常な TCP セッションの確立に依存します。TCP custom probe: This probe relies on successful TCP session establishment to a defined probe port.

      詳細については、「 LoadBalancerProbe schema (LoadBalancerProbe スキーマ)」を参照してください。For more information, see the LoadBalancerProbe schema.

  • Source NATSource NAT

    サービスからインターネットへのすべての送信トラフィックは、着信トラフィックと同じ VIP アドレスを使用してソース NAT (SNAT) 変換されます。All outbound traffic to the Internet that originates from your service undergoes source NAT (SNAT) by using the same VIP address as the incoming traffic. SNAT には重要な利点があります。SNAT provides important benefits:

    • VIP を別のサービス インスタンスに動的にマップできるため、サービスのアップグレードや障害復旧が簡単にできます。It enables easy upgrade and disaster recovery of services, since the VIP can be dynamically mapped to another instance of the service.
    • アクセス制御リスト (ACL) の管理が容易になります。It makes access control list (ACL) management easier. VIP で表現される ACL は、サービスをスケールアップ、スケールダウン、または再デプロイしても変更されません。ACLs expressed in terms of VIPs do not change as services scale up, down, or get redeployed.

      ロード バランサーの構成では、UDP の Full cone NAT がサポートされます。The load balancer configuration supports full cone NAT for UDP. Full cone NAT は、ポートが (送信要求に応答して) 任意の外部ホストからの着信接続を許可する NAT の一種です。Full cone NAT is a type of NAT where the port allows inbound connections from any external host (in response to an outbound request).

      仮想マシンによって開始された新しい送信接続ごとに、送信ポートもロード バランサーによって割り当てられます。For each new outbound connection that a virtual machine initiates, an outbound port is also allocated by the load balancer. 外部ホストは、仮想 IP (VIP) の割り当てポートでトラフィックを認識します。The external host sees traffic with a virtual IP (VIP)-allocated port. 大量の送信接続が必要なシナリオでは、VM が SNAT 専用の送信 IP アドレスを使用できるように、 インスタンスレベル パブリック IP アドレスを使用することをお勧めします。For scenarios that require a large number of outbound connections, it is recommended to use instance-level public IP addresses so that the VMs have a dedicated outbound IP address for SNAT. これにより、ポートの枯渇のリスクが軽減されます。This reduces the risk of port exhaustion.

      このトピックの詳細については、送信接続に関する記事をご覧ください。Please see outbound connections article for more details on this topic.

仮想マシンの複数の負荷分散された IP アドレスのサポートSupport for multiple load-balanced IP addresses for virtual machines

負荷分散された複数のパブリック IP アドレスを、一連の仮想マシンに割り当てることができます。You can assign more than one load-balanced public IP address to a set of virtual machines. この機能を使用して、複数の SSL Web サイトや複数の SQL Server AlwaysOn 可用性グループ リスナーを同じ仮想マシン セット上にホストすることができます。With this ability, you can host multiple SSL websites and/or multiple SQL Server AlwaysOn Availability Group listeners on the same set of virtual machines. 詳細については、クラウド サービスごとの複数の VIP に関する記事をご覧ください。For more information, see Multiple VIPs per cloud service.

Load Balancer の相違点Load Balancer differences

Microsoft Azure を使用してネットワーク トラフィックを分散するには、さまざまなオプションがあります。There are different options to distribute network traffic using Microsoft Azure. これらのオプションはそれぞれ動作が異なり、さまざまな機能セットが含まれ、さまざまなシナリオをサポートします。These options work differently from each other, having a different feature set and support different scenarios. オプションは単独または組み合わせて使用することができます。They can each be used in isolation, or combining them.

  • Azure Load Balancer は、トランスポート層で動作します (OSI ネットワーク参照モデルの第 4 層)。Azure Load Balancer works at the transport layer (Layer 4 in the OSI network reference stack). これは、同じ Azure データ センターで実行するアプリケーションのインスタンス間で、トラフィックのネットワーク レベルの分散を提供します。It provides network-level distribution of traffic across instances of an application running in the same Azure data center.
  • Application Gateway は、アプリケーション層で動作します (OSI ネットワーク参照モデルの第 7 層)。Application Gateway works at the application layer (Layer 7 in the OSI network reference stack). これは、クライアント接続を終了して、バックエンドのエンドポイントへの要求を転送し、リバース プロキシ サービスとして機能します。It acts as a reverse-proxy service, terminating the client connection and forwarding requests to back-end endpoints.
  • Traffic Manager は、DNS レベルで動作します。Traffic Manager works at the DNS level. これは、DNS 応答を使用して、エンドユーザーのトラフィックをグローバルに分散されたエンドポイントに送信します。It uses DNS responses to direct end-user traffic to globally distributed endpoints. その後、クライアントは、それらのエンドポイントに直接接続します。Clients then connect to those endpoints directly.

次の表では、各サービスで提供される機能についてまとめています。The following table summarizes the features offered by each service:

サービスService Azure Load BalancerAzure Load Balancer Application GatewayApplication Gateway Traffic ManagerTraffic Manager
テクノロジTechnology トランスポート レベル (第 4 層)Transport level (Layer 4) アプリケーション レベル (第 7 層)Application level (Layer 7) DNS レベルDNS level
サポート対象アプリケーション プロトコルApplication protocols supported 任意Any HTTP、HTTPS、および WebSocketHTTP, HTTPS, and WebSockets 任意 (HTTP エンドポイントはエンドポイントの監視に必要です)Any (An HTTP endpoint is required for endpoint monitoring)
エンドポイントEndpoints Azure VM と Cloud Services のロール インスタンスAzure VMs and Cloud Services role instances 任意の Azure 内部 IP アドレス、パブリック インターネット IP アドレス、Azure VM、または Azure クラウド サービスAny Azure internal IP address, public internet IP address, Azure VM, or Azure Cloud Service Azure VM、Cloud Services、Azure Web Apps および外部エンドポイントAzure VMs, Cloud Services, Azure Web Apps, and external endpoints
VNet のサポートVnet support インターネット接続と内部 (VNet) のアプリケーションの両方に使用できますCan be used for both Internet facing and internal (Vnet) applications インターネット接続と内部 (VNet) のアプリケーションの両方に使用できますCan be used for both Internet facing and internal (Vnet) applications インターネットに接続するアプリケーションのみをサポートしますOnly supports Internet-facing applications
エンドポイントの監視Endpoint Monitoring プローブ経由でサポートSupported via probes プローブ経由でサポートSupported via probes HTTP/HTTPS GET 経由でサポートSupported via HTTP/HTTPS GET

Azure Load Balancer と Application Gateway では、ネットワーク トラフィックをエンドポイントに転送しますが、処理するトラフィックによってさまざまな使用シナリオがあります。Azure Load Balancer and Application Gateway route network traffic to endpoints but they have different usage scenarios to which traffic to handle. 次の表は、2 つのロード バランサーの相違点を理解するために役立ちます。The following table helps understanding the difference between the two load balancers:

Type Azure Load BalancerAzure Load Balancer Application GatewayApplication Gateway
プロトコルProtocols UDP/TCPUDP/TCP HTTP、HTTPS、および WebSocketHTTP, HTTPS, and WebSockets
IP ReservationIP reservation サポートされていますSupported サポートされていませんNot supported
負荷分散モードLoad balancing mode 5 組 (発信元 IP、発信元ポート、接続先 IP、接続先ポート、プロトコルの種類)5-tuple(source IP, source port, destination IP, destination port, protocol type) ラウンド ロビンRound Robin
URL に基づくルーティングRouting based on URL
負荷分散モード (発信元 IP/スティッキー セッション)Load balancing mode (source IP /sticky sessions) 2 組 (発信元 IP と接続先 IP)、3 組 (発信元 IP、接続先 IP、および接続先ポート)。2-tuple (source IP and destination IP), 3-tuple (source IP, destination IP, and port). 仮想マシンの数に基づいて、スケールアップまたはスケールダウンできますCan scale up or down based on the number of virtual machines Cookie ベースのアフィニティCookie-based affinity
URL に基づくルーティングRouting based on URL
正常性プローブHealth probes 既定値: プローブ間隔 -15 秒。Default: probe interval - 15 secs. 循環から除外: 2 回連続のエラー。Taken out of rotation: 2 Continuous failures. ユーザー定義のプローブをサポートしますSupports user-defined probes アイドル状態のプローブ間隔 30 秒。Idle probe interval 30 secs. 5 回連続するライブ トラフィック障害またはアイドル モードでの単一のプローブ障害の後に除外。Taken out after 5 consecutive live traffic failures or a single probe failure in idle mode. ユーザー定義のプローブをサポートしますSupports user-defined probes
SSL オフロードSSL offloading サポートされていませんNot supported サポートされていますSupported
URL ベースのルーティングUrl-based routing サポートされていませんNot supported サポートされていますSupported
SSL ポリシーSSL Policy サポートされていませんNot supported サポートされていますSupported

制限事項Limitations

Load Balancer のバックエンド プールには、Basic レベルを除く任意の VM SKU を含めることができます。Load Balancer backend pools can contain any VM SKU except Basic tier.

次のステップNext steps