バックエンド プールは、ロード バランサーの重要なコンポーネントです。 バックエンド プールは、指定された負荷分散規則のトラフィックを処理するリソースのグループを定義します。
バックエンド プールを構成するには、次の 2 つの方法があります。
ネットワーク インターフェイス カード (NIC)
IP アドレス
仮想マシンとVirtual Machine Scale Setsを含むIPアドレス範囲を持つバックエンドプールを事前割り当てするには、IPアドレスと仮想ネットワークIDでプールを設定してください。 IPベースのバックエンドプールにはStandard Load Balancerが必要です。
本記事では、IPベースのバックエンドプールの設定に焦点を当てています。
IP アドレスと仮想ネットワークを使用してバックエンド プールを構成する
バックエンドプールがプリポップされている場合は、IPアドレスと仮想ネットワークを使いましょう。
開始する前に、次の要件が満たされていることを確認します。
- 既存のStandard Load Balancerと仮想ネットワーク。
- リソースはロードバランサーと同じ仮想ネットワーク内にバックエンドで管理します。
- ロードバランサー、ネットワークインターフェース、仮想マシンリソースの作成または更新の権限。
- 使用するツール用の認証済みAzure PowerShellまたはAzure CLIセッションです。
次の例で強調表示されているバックエンド プール オブジェクトで、バックエンド プール管理を構成します。
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
Azure CLIを使えば、コマンドラインパラメータやJSON設定ファイルを通じてIPベースのバックエンドプールを入力できます。
Azure CLI を使用して、IP ベースのバックエンド プールを作成する
コマンドライン パラメーターを使用して、バックエンド プールを作成して設定します。
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"
}
]
Azure CLI でバックエンド アドレスを確認する
ロード バランサーのバックエンド プール情報を取得して、そのバックエンド アドレスがバックエンド プールに追加されていることを確認します。
az network lb address-pool show \
--resource-group myResourceGroup \
--lb-name MyLb \
--name MyBackendPool
Azure CLI を使用してネットワーク インターフェイスを作成する
ネットワーク インターフェイスを作成して、バックエンド プールに追加します。 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
Azure CLI を使用して仮想マシンを作成する
VM を作成し、バックエンド プールの IP アドレスで NIC をアタッチします。
az vm create \
--resource-group myResourceGroup \
--name myVM \
--nics myNic \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
IPベースのバックエンドプールの制限
- IPベースのバックエンドプールは標準ロードバランサーでしか使えません。
- バックエンドのリソースはロードバランサーと同じ仮想ネットワーク内にある必要があります。
- IPベースのバックエンドプール内のバックエンドインスタンスは仮想マシンまたは仮想マシンスケールセットでなければなりません。 他のPaaSサービスをアタッチすることはできません。
- IP ベースのバックエンド プールを使用するロード バランサーは、Private Link サービスとして機能することはできません。
- プライベートエンドポイントリソースをIPベースのバックエンドプールに配置することはできません。
- IPベースのバックエンドプールはACIコンテナをサポートしていません。
- ロードバランサーやアプリケーションゲートウェイのようなサービスは、ロードバランサーのバックエンドプールに入れることができません。
- 受信NATルールはIPアドレスで指定できません。
- 同じロードバランサーに対して、IPベースとNICベースのバックエンドプールの両方を設定できます。 同じプール内で、NIC を対象とするバックエンド アドレスと IP アドレスを対象とするバックエンド アドレスを混在させた 1 つのバックエンド プールを作成することはできません。
- 内部ロード バランサーと同じ仮想ネットワーク内の仮想マシンは、ILB のフロントエンドとそのバックエンド VM に、同時にアクセスすることはできません。
- インターネットルーティングの優先IPは、現在IPベースのバックエンドプールではサポートされていません。 IPベースのバックエンドプールでインターネットルーティング優先IPを使う場合、それらは請求され、デフォルトのMicrosoftグローバルネットワークを通じてルーティングされます。
- IPベースのバックエンドプールに接続されたVNETで移動操作を行うことはサポートされていません。
- バックエンド プールが継続的に変更されている場合 (バックエンド リソースが継続的に追加または削除されるため)。 これにより、リセット シグナルがバックエンド リソースからソースに返送される可能性があります。 回避策として、再試行を使用できます。
Important
IPベースのバックエンドプールでもStandard Load Balancerが必要です。 デフォルトのアウトバウンド動作はBasic Load Balancerの動作に似ており、デフォルトのアウトバウンドアクセスが有効になっているためです。 この発言は、Basic Load BalancerがIPベースのバックエンドプールをサポートしているという意味ではありません。 既定でセキュリティで保護された構成の場合と、送信のニーズが厳しいアプリケーションの場合は、バックエンド プールを NIC 別に構成します。
次のステップ
この記事では、Azure Load Balancer のバックエンド プール管理についてと、IP アドレスと仮想ネットワークを使用してバックエンド プールを構成する方法について学習しました。
Azure Load Balancer についてさらに詳しく学習する。
IPベースのバックエンドプール管理のために REST API を確認してください。