バックエンド プールの管理

バックエンド プールは、ロード バランサーの重要なコンポーネントです。 バックエンド プールは、指定された負荷分散規則のトラフィックを処理するリソースのグループを定義します。

バックエンド プールを構成するには、次の 2 つの方法があります。

  • ネットワーク インターフェイス カード (NIC)

  • IP アドレス

後で仮想マシンと Virtual Machine Scale Sets を格納するバックエンド プールを、IP アドレス範囲を指定して事前に割り当てるには、IP アドレスと仮想ネットワーク ID でプールを構成します。 この記事では、IP アドレスによるバックエンド プールの構成について説明します。

IP アドレスと仮想ネットワークを使用してバックエンド プールを構成する

事前に設定されたバックエンド プールのシナリオでは、IP と仮想ネットワークを使用します。

次の例で強調表示されているバックエンド プール オブジェクトで、バックエンド プール管理を構成します。

PowerShell

新しいバックエンド プールを作成します。

$be = @{
    ResourceGroupName = 'myResourceGroup'
    LoadBalancerName = 'myLoadBalancer'
    Name = 'myBackendPool'
}
$backendPool = New-AzLoadBalancerBackendAddressPool @be

既存の仮想ネットワークから新しい IP を使用してバックエンド プールを更新します。

$vnet = @{
    Name = 'myVnet'
    ResourceGroupName = 'myResourceGroup'
}
$virtualNetwork = Get-AzVirtualNetwork @vnet

$add1 = @{
    IpAddress = '10.0.0.5'
    Name = 'TestVNetRef'
    VirtualNetworkId = $virtualNetwork.Id
}
$ip1 = New-AzLoadBalancerBackendAddressConfig @add1
 
$backendPool.LoadBalancerBackendAddresses.Add($ip1) 

Set-AzLoadBalancerBackendAddressPool -InputObject $backendPool

ロード バランサーのバックエンド プール情報を取得して、そのバックエンド アドレスがバックエンド プールに追加されていることを確認します。

$pool = @{
    ResourceGroupName = 'myResourceGroup'
    LoadBalancerName = 'myLoadBalancer'
    Name = 'myBackendPool'
}
Get-AzLoadBalancerBackendAddressPool @pool

ネットワーク インターフェイスを作成して、バックエンド プールに追加します。 IP アドレスをバックエンド アドレスの 1 つに設定します。

$net = @{
    Name = 'myNic'
    ResourceGroupName = 'myResourceGroup'
    Location = 'eastus'
    PrivateIpAddress = '10.0.0.5'
    Subnet = $virtualNetwork.Subnets[0]
}
$nic = New-AzNetworkInterface @net

VM を作成し、バックエンド プールの IP アドレスで NIC をアタッチします。

# Create a username and password for the virtual machine
$cred = Get-Credential

# Create a virtual machine configuration
$net = @{
    Name = 'myNic'
    ResourceGroupName = 'myResourceGroup'
}
$nic = Get-AzNetworkInterface @net

$vmc = @{
    VMName = 'myVM1'
    VMSize = 'Standard_DS1_v2'
}

$vmos = @{
    ComputerName = 'myVM1'
    Credential = $cred
}

$vmi = @{
    PublisherName = 'MicrosoftWindowsServer'
    Offer = 'WindowsServer'
    Skus = '2019-Datacenter'
    Version = 'latest'
}
$vmConfig = 
New-AzVMConfig @vmc | Set-AzVMOperatingSystem -Windows @vmos | Set-AzVMSourceImage @vmi | Add-AzVMNetworkInterface -Id $nic.Id


# Create a virtual machine using the configuration
$vm = @{
    ResourceGroupName = 'myResourceGroup'
    Zone = '1'
    Location = 'eastus'
    VM = $vmConfig

}
$vm1 = New-AzVM @vm

CLI

CLI を使用すると、コマンドライン パラメーターを使用するか、JSON 構成ファイルを使用して、バックエンド プールを設定できます。

コマンドライン パラメーターを使用して、バックエンド プールを作成して設定します。

az network lb address-pool create \
--resource-group myResourceGroup \
--lb-name myLB \
--name myBackendPool \
--vnet {VNET resource ID} \
--backend-address name=addr1 ip-address=10.0.0.4 \
--backend-address name=addr2 ip-address=10.0.0.5

JSON 構成ファイルを使用して、バックエンド プールを作成して設定します。

az network lb address-pool create \
--resource-group myResourceGroup \
--lb-name myLB \
--name myBackendPool \
--vnet {VNET resource ID} \
--backend-address-config-file @config_file.json

JSON 構成ファイル:

        [
          {
            "name": "address1",
            "virtualNetwork": "/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualNetworks/{vnet-name}",
            "ipAddress": "10.0.0.4"
          },
          {
            "name": "address2",
            "virtualNetwork": "/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualNetworks/{vnet-name}",
            "ipAddress": "10.0.0.5"
          }
        ]

ロード バランサーのバックエンド プール情報を取得して、そのバックエンド アドレスがバックエンド プールに追加されていることを確認します。

az network lb address-pool show \
--resource-group myResourceGroup \
--lb-name MyLb \
--name MyBackendPool

ネットワーク インターフェイスを作成して、バックエンド プールに追加します。 IP アドレスをバックエンド アドレスの 1 つに設定します。

az network nic create \
  --resource-group myResourceGroup \
  --name myNic \
  --vnet-name myVnet \
  --subnet mySubnet \
  --network-security-group myNetworkSecurityGroup \
  --lb-name myLB \
  --private-ip-address 10.0.0.4

VM を作成し、バックエンド プールの IP アドレスで NIC をアタッチします。

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --nics myNic \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --generate-ssh-keys

制限事項

  • IP ベースのバックエンドは、Standard Load Balancer にのみ使用できる
  • バックエンド リソースは、IP ベースの LB のロード バランサーと同じ仮想ネットワークに存在する必要がある
  • IP ベースのバックエンド プールを使用するロード バランサーは、Private Link サービスとして機能することはできません
  • プライベート エンドポイント リソースを IP ベースのバックエンド プールに配置することはできません
  • IP ベースの LB では、ACI コンテナーは現在サポートされていません
  • Application Gateway などのロード バランサーやサービスは、ロード バランサーのバックエンド プールに配置できません
  • インバウンド NAT 規則を IP アドレスで指定することはできません
  • 同じロード バランサーに対して、IP ベースと NIC ベースのバックエンド プールを構成できます。 NIC の対象となるバックのアドレスと IP アドレスとが同じプール内に混在する単一のバックエンド プールを作成することはできません。
  • 内部ロード バランサーと同じ仮想ネットワーク内の仮想マシンは、ILB のフロントエンドとそのバックエンド VM に、同時にアクセスすることはできません。
  • インターネット ルーティング優先 IP は、現在、IP ベースのバックエンド プールではサポートされていません。 IP ベースのバックエンド プール内のインターネット ルーティング優先 IP は、既定の Microsoft グローバル ネットワーク経由で課金およびルーティングされます。
  • バックエンド プールが継続的に変更されている場合 (バックエンド リソースが継続的に追加または削除されるため)。 これにより、バックエンド リソースからソースに戻されるリセット シグナルが発生する可能性があります。 回避策として、再試行を使用できます。

重要

バックエンド プールが IP アドレス別に構成されている場合、既定のアウトバウンドが有効な Basic ロード バランサーとして動作します。 既定でセキュリティで保護された構成の場合と、送信のニーズが厳しいアプリケーションの場合は、バックエンド プールを NIC 別に構成します。

次のステップ

この記事では、Azure Load Balancer のバックエンド プール管理についてと、IP アドレスと仮想ネットワークを使用してバックエンド プールを構成する方法について学習しました。

Azure Load Balancer についてさらに詳しく学習する。

IP ベースのバックエンド プール管理用の REST API を確認する。