MSDN Documentation

Microsoft Developer Network - Azure Services

Azure Load Balancing Azure

Distribute network traffic across multiple virtual machines, improving application availability and responsiveness.

Introduction to Load Balancing

Azure Load Balancer is a highly available and scalable Layer 4 load balancer. It distributes incoming traffic among healthy virtual machines in a load-balanced set. This ensures that your applications remain highly available and responsive, even during hardware failures or during scheduled maintenance.

[Diagram: Incoming Traffic -> Azure Load Balancer -> Multiple VMs]

Key Benefits:

Types of Azure Load Balancers

Azure provides different load balancing solutions depending on your needs:

Azure Load Balancer (Standard and Basic SKUs)

A native Azure load balancer that distributes network traffic at the network level (Layer 4). It can load balance across VMs within a virtual network and across different availability zones.

Azure Application Gateway

A web traffic load balancer that enables you to manage traffic to your web applications. It operates at the application level (Layer 7) and provides features like SSL termination, cookie-based session affinity, and URL-based routing.

Azure Traffic Manager

A DNS-based traffic load balancer that allows you to distribute traffic optimally to your services hosted in different Azure regions or even external endpoints. It provides global traffic management.

Configuring Azure Load Balancer

Configuring Azure Load Balancer involves several key components:

Frontend IP Configuration

The IP address(es) that clients connect to. Can be public or private.

Backend Pool

A set of virtual machines (or VM Scale Sets) that will receive the traffic.

Health Probes

Used to monitor the health of the backend instances. If an instance fails the health probe, it's removed from the load balancing rotation.

Load Balancing Rules

Define how traffic is distributed. This rule maps a frontend IP and port to a backend pool and port, along with the health probe to use.

Inbound NAT Rules

Allow direct access to a specific virtual machine in the backend pool by mapping a public IP and port to a specific VM's private IP and port.

Example: Basic Load Balancer Configuration (Conceptual)

Here's a simplified representation of what a load balancing rule configuration might look like:

                
{
  "frontendIPConfigurations": [
    {
      "name": "myFrontendIP",
      "properties": {
        "publicIPAddress": {
          "id": "/subscriptions/..../resourceGroups/myRG/providers/Microsoft.Network/publicIPAddresses/myPublicIP"
        }
      }
    }
  ],
  "backendAddressPools": [
    {
      "name": "myBackendPool",
      "properties": {
        "backendIPConfigurations": []
      }
    }
  ],
  "loadBalancingRules": [
    {
      "name": "myHTTPRule",
      "properties": {
        "frontendIPConfiguration": {
          "id": "/subscriptions/..../resourceGroups/myRG/providers/Microsoft.Network/loadBalancers/myLB/frontendIPConfigurations/myFrontendIP"
        },
        "backendAddressPool": {
          "id": "/subscriptions/..../resourceGroups/myRG/providers/Microsoft.Network/loadBalancers/myLB/backendAddressPools/myBackendPool"
        },
        "protocol": "Tcp",
        "frontendPort": 80,
        "backendPort": 80,
        "enableFloatingIP": false,
        "idleTimeoutInMinutes": 4,
        "probe": {
          "id": "/subscriptions/..../resourceGroups/myRG/providers/Microsoft.Network/loadBalancers/myLB/probes/myHTTPProbe"
        }
      }
    }
  ],
  "probes": [
    {
      "name": "myHTTPProbe",
      "properties": {
        "protocol": "Http",
        "port": 80,
        "intervalInSeconds": 5,
        "numberOfProbes": 2
      }
    }
  ]
}
                
            

Best Practices

Further Reading