자습서: Azure PowerShell을 사용하여 게이트웨이 부하 분산 장치 만들기
Azure Load Balancer는 표준, 기본 및 게이트웨이 SKU로 구성됩니다. 게이트웨이 부하 분산 장치는 NVA(네트워크 가상 어플라이언스)를 사용자가 인식하지 못하는 새 삽입하는 데 사용됩니다. NVA의 고성능 및 높은 확장성이 필요한 시나리오의 경우 게이트웨이 부하 분산 장치를 사용합니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- 가상 네트워크를 만듭니다.
- 네트워크 보안 그룹을 만듭니다.
- 게이트웨이 부하 분산 장치를 만듭니다.
- 부하 분산 장치 프런트 엔드를 게이트웨이 부하 분산 장치에 연결합니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정 만들기
- 기존 공용 표준 SKU Azure Load Balancer 부하 분산 장치 만들기에 대한 자세한 내용은 Azure PowerShell을 사용하여 공용 부하 분산 장치 만들기를 참조하세요.
- 이 자습서에서는 예제의 기존 부하 분산 장치의 이름을 myLoadBalancer로 지정합니다.
- 로컬로 설치된 Azure PowerShell 또는 Azure Cloud Shell
PowerShell을 로컬로 설치하고 사용하도록 선택하는 경우 이 문서에는 Azure PowerShell 모듈 버전 5.4.1 이상이 필요합니다. 설치되어 있는 버전을 확인하려면 Get-Module -ListAvailable Az
을 실행합니다. 업그레이드해야 하는 경우 Azure PowerShell 모듈 설치를 참조하세요. 또한 PowerShell을 로컬로 실행하는 경우 Connect-AzAccount
를 실행하여 Azure와 연결해야 합니다.
리소스 그룹 만들기
Azure 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다.
New-AzResourceGroup을 사용하여 다음 리소스 그룹을 만듭니다.
New-AzResourceGroup -Name 'TutorGwLB-rg' -Location 'eastus'
가상 네트워크 만들기
가상 네트워크는 게이트웨이 부하 분산 장치의 백 엔드 풀에 있는 리소스에 필요합니다. New-AzVirtualNetwork를 사용하여 가상 네트워크를 만듭니다. New-AzBastion을 사용하여 가상 네트워크의 리소스를 안전하게 관리하기 위한 베스천 호스트를 배포합니다.
Important
시간당 가격 책정은 아웃바운드 데이터 사용량에 관계없이 Bastion이 배포되는 순간부터 시작됩니다. 자세한 내용은 가격 책정 및 SKU를 참조하세요. 자습서를 보거나 테스트 중에 Bastion을 배포하는 경우 이 리소스 사용을 마친 후 삭제하는 것이 좋습니다.
## Create backend subnet config ##
$subnet = @{
Name = 'myBackendSubnet'
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create Azure Bastion subnet. ##
$bastsubnet = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.1.1.0/24'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet
## Create the virtual network ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'eastus'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host. ##
$ip = @{
Name = 'myBastionIP'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip
## Create bastion host ##
$bastion = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myBastion'
PublicIpAddress = $publicip
VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob
NSG 만들기
다음 예제를 사용하여 네트워크 보안 그룹을 만듭니다. 이전에 만든 가상 네트워크의 네트워크 트래픽에 필요한 NSG 규칙을 구성합니다.
New-AzNetworkSecurityRuleConfig를 사용하여 NSG에 대한 규칙을 만듭니다. New-AzNetworkSecurityGroup을 사용하여 NSG를 만듭니다.
## Create rule for network security group and place in variable. ##
$nsgrule1 = @{
Name = 'myNSGRule-AllowAll'
Description = 'Allow all'
Protocol = '*'
SourcePortRange = '*'
DestinationPortRange = '*'
SourceAddressPrefix = '0.0.0.0/0'
DestinationAddressPrefix = '0.0.0.0/0'
Access = 'Allow'
Priority = '100'
Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule1
$nsgrule2 = @{
Name = 'myNSGRule-AllowAll-TCP-Out'
Description = 'Allow all TCP Out'
Protocol = 'TCP'
SourcePortRange = '*'
DestinationPortRange = '*'
SourceAddressPrefix = '0.0.0.0/0'
DestinationAddressPrefix = '0.0.0.0/0'
Access = 'Allow'
Priority = '100'
Direction = 'Outbound'
}
$rule2 = New-AzNetworkSecurityRuleConfig @nsgrule2
## Create network security group ##
$nsg = @{
Name = 'myNSG'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'eastus'
SecurityRules = $rule1,$rule2
}
New-AzNetworkSecurityGroup @nsg
게이트웨이 부하 분산 장치 만들기
이 섹션에서는 구성을 만들고 게이트웨이 부하 분산 장치를 배포합니다. New-AzLoadBalancerFrontendIpConfig를 사용하여 부하 분산 장치의 프런트 엔드 IP 구성을 만듭니다.
New-AzLoadBalancerTunnelInterface를 사용하여 부하 분산 장치의 두 터널 인터페이스를 만듭니다.
NVA에 대한 New-AzLoadBalancerBackendAddressPoolConfig을 사용하여 백 엔드 풀을 만듭니다.
부하 분산 장치에서 백 엔드 인스턴스의 상태를 모니터링하려면 상태 프로브가 필요합니다. New-AzLoadBalancerProbeConfig를 사용하여 상태 프로브를 만듭니다.
백 엔드 인스턴스로 향하는 트래픽은 부하 분산 규칙을 통해 라우팅됩니다. New-AzLoadBalancerRuleConfig를 사용하여 부하 분산 규칙을 만듭니다.
부하 분산 장치를 만들고 배포하려면 New-AzLoadBalancer를 사용합니다.
## Place virtual network configuration in a variable for later use. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'TutorGwLB-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Create load balancer frontend configuration and place in variable. ##
$fe = @{
Name = 'myFrontend'
SubnetId = $vnet.subnets[0].id
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe
## Create backend address pool configuration and place in variable. ##
$int1 = @{
Type = 'Internal'
Protocol = 'Vxlan'
Identifier = '800'
Port = '10800'
}
$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int1
$int2 = @{
Type = 'External'
Protocol = 'Vxlan'
Identifier = '801'
Port = '10801'
}
$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int2
$pool = @{
Name = 'myBackendPool'
TunnelInterface = $tunnelInterface1,$tunnelInterface2
}
$bepool = New-AzLoadBalancerBackendAddressPoolConfig @pool
## Create the health probe and place in variable. ##
$probe = @{
Name = 'myHealthProbe'
Protocol = 'http'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe
## Create the load balancer rule and place in variable. ##
$para = @{
Name = 'myLBRule'
Protocol = 'All'
FrontendPort = '0'
BackendPort = '0'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
Probe = $healthprobe
}
$rule = New-AzLoadBalancerRuleConfig @para
## Create the load balancer resource. ##
$lb = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myLoadBalancer-gw'
Location = 'eastus'
Sku = 'Gateway'
LoadBalancingRule = $rule
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
Probe = $healthprobe
}
New-AzLoadBalancer @lb
게이트웨이 부하 분산 장치 백 엔드 풀에 네트워크 가상 어플라이언스 추가
Azure Marketplace 통해 NLA를 배포합니다. 배포되면 Add-AzVMNetworkInterface를 사용하여 백엔드 풀에 가상 머신을 추가합니다.
게이트웨이 부하 분산 장치에 부하 분산 장치 프런트 엔드 연결
이 예제에서는 표준 부하 분산 장치의 프런트 엔드를 게이트웨이 부하 분산 장치에 연결합니다.
구독에 있는 기존 부하 분산 장치의 프런트 엔드 IP에 프런트 엔드를 추가합니다.
Set-AzLoadBalancerFrontendIpConfig를 사용하여 게이트웨이 부하 분산 장치 프런트 엔드를 기존 부하 분산 장치에 연결합니다.
## Place the gateway load balancer configuration into a variable. ##
$par1 = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myLoadBalancer-gw'
}
$gwlb = Get-AzLoadBalancer @par1
## Place the existing load balancer into a variable. ##
$par2 = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @par2
## Place the existing public IP for the existing load balancer into a variable.
$par3 = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = 'myPublicIP'
}
$publicIP = Get-AzPublicIPAddress @par3
## Chain the gateway load balancer to your existing load balancer frontend. ##
$par4 = @{
Name = 'myFrontEndIP'
PublicIPAddress = $publicIP
LoadBalancer = $lb
GatewayLoadBalancerId = $gwlb.FrontendIpConfigurations.Id
}
$config = Set-AzLoadBalancerFrontendIpConfig @par4
$config | Set-AzLoadBalancer
게이트웨이 Load Balancer에 가상 머신 연결
또는 VM의 NIC IP 구성을 게이트웨이 부하 분산 장치에 연결할 수 있습니다.
게이트웨이 부하 분산 장치의 프런트 엔드를 기존 VM의 NIC IP 구성에 추가합니다.
Set-AzNetworkInterfaceIpConfig를 사용하여 게이트웨이 부하 분산 장치 프런트 엔드를 기존 VM의 NIC IP 구성에 연결합니다.
## Place the gateway load balancer configuration into a variable. ##
$par1 = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myLoadBalancer-gw'
}
$gwlb = Get-AzLoadBalancer @par1
## Place the existing NIC into a variable. ##
$par2 = @{
ResourceGroupName = 'MyResourceGroup'
Name = 'myNic'
}
$nic = Get-AzNetworkInterface @par2
## Chain the gateway load balancer to your existing VM NIC. ##
$par3 = @{
Name = 'myIPconfig'
NetworkInterface = $nic
GatewayLoadBalancerId = $gwlb.FrontendIpConfigurations.Id
}
$config = Set-AzNetworkInterfaceIpConfig @par3
$config | Set-AzNetworkInterface
리소스 정리
더 이상 필요하지 않은 경우 Remove-AzResourceGroup 명령을 사용하여 리소스 그룹, 부하 분산 장치 및 나머지 리소스를 제거할 수 있습니다.
Remove-AzResourceGroup -Name 'TutorGwLB-rg'
다음 단계
Azure에서 네트워크 가상 어플라이언스를 만듭니다.
NVA를 만들 때 이 자습서에서 만든 리소스를 선택합니다.
가상 네트워크
서브넷
네트워크 보안 그룹
게이트웨이 부하 분산 장치
영역 간 Azure Load Balancer를 만드는 방법에 대해 알아보려면 다음 문서로 계속 진행하세요.