백 엔드 풀은 부하 분산 장치의 중요한 구성 요소입니다. 백 엔드 풀은 지정된 부하 분산 규칙에 대한 트래픽을 제공하는 리소스 그룹을 정의합니다.
백 엔드 풀을 구성하는 두 가지 방법이 있습니다.
NIC(네트워크 인터페이스 카드)
IP address
가상 머신과 Virtual Machine Scale Sets를 포함하는 IP 주소 범위의 백엔드 풀을 미리 할당하려면, IP 주소와 가상 네트워크 ID별로 풀을 구성하세요. IP 기반 백엔드 풀은 표준 Load Balancer가 필요합니다.
이 글은 IP 기반 백엔드 풀의 구성에 초점을 맞추고 있습니다.
IP 주소 및 가상 네트워크를 통해 백 엔드 풀 구성
백엔드 풀이 미리 채워진 경우에는 IP 주소와 가상 네트워크를 사용하세요.
시작하기 전에 다음 항목이 있어야 합니다.
- 기존의 표준 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 주소를 백 엔드 주소 중 하나로 설정합니다.
$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 주소를 백 엔드 주소 중 하나로 설정합니다.
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 주소를 혼합하는 단일 백엔드 풀을 만들 수는 없습니다.
- 내부 부하 분산 장치와 동일한 가상 네트워크에 있는 가상 머신은 ILB 및 해당 백 엔드 VM의 프런트 엔드에 동시에 액세스할 수 없습니다.
- 현재 IP 기반 백엔드 풀에서는 인터넷 라우팅 선호 IP를 지원하지 않습니다. IP 기반 백엔드 풀에서 인터넷 라우팅 선호 IP를 사용한다면, 기본 Microsoft 글로벌 네트워크를 통해 청구되고 라우팅됩니다.
- IP 기반 백엔드 풀에 연결된 VNET에서 이동 관련 작업을 수행하는 것은 지원되지 않습니다.
- 백 엔드 풀이 지속적으로 변경되는 경우(백 엔드 리소스의 지속적인 추가 또는 제거로 인해). 이로 인해 다시 설정 신호가 백 엔드 리소스에서 원본으로 다시 전송될 수 있습니다. 해결 방법으로 재시도를 사용할 수 있습니다.
Important
IP 기반 백엔드 풀은 여전히 표준 Load Balancer가 필요합니다. 기본 아웃바운드 동작은 기본 Load Balancer 동작과 유사한데, 이는 기본 아웃바운드 접근이 활성화되어 있기 때문입니다. 이 말이 Basic Load Balancer가 IP 기반 백엔드 풀을 지원한다는 의미는 아닙니다. 기본적으로 보안이 적용된 구성과 아웃바운드 요구가 많은 애플리케이션의 경우, NIC 기반으로 백엔드 풀을 구성합니다.
다음 단계
이 문서에서는 Azure Load Balancer 백 엔드 풀 관리 및 IP 주소 및 가상 네트워크를 통해 백 엔드 풀을 구성하는 방법에 대해 알아보았습니다.
Azure Load Balancer에 대해 자세히 알아보세요.
IP 기반 백엔드 풀 관리를 위해 REST API 를 검토하세요.