バックエンド プールの管理
バックエンド プールは、ロード バランサーの重要なコンポーネントです。 バックエンド プールは、指定された負荷分散規則のトラフィックを処理するリソースのグループを定義します。
バックエンド プールを構成するには、次の 2 つの方法があります。
ネットワーク インターフェイス カード (NIC)
IP アドレス (IP address)
仮想マシンと 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 ベースのロード バランサーのバックエンド インスタンスは、仮想マシンまたは仮想マシン スケール セットである必要があります。 IP ベースのロード バランサーのバックエンド プールへの他の PaaS サービスのアタッチはサポートされていません。
- IP ベースのバックエンド プールを使用するロード バランサーは、Private Link サービスとして機能することはできません
- プライベート エンドポイント リソースを IP ベースのバックエンド プールに配置することはできません
- IP ベースのロード バランサーは 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 を確認する。