웹 애플리케이션 액세스를 개선하는 것을 목표로 하는 IT 관리자인 경우 애플리케이션 게이트웨이를 최적화하여 고객 수요에 따라 동적으로 확장하고 여러 가용성 영역에 걸쳐 있을 수 있습니다. 이 자습서를 통해 자동 크기 조정, 영역 중복성 및 정적 VIP를 비롯한 주요 Azure Application Gateway v2 기능을 구성하여 이러한 향상된 기능을 달성할 수 있습니다. Azure PowerShell cmdlet 및 Azure Resource Manager 배포 모델을 사용하여 문제를 해결합니다.
이 튜토리얼에서는 다음을 배우게 됩니다:
- 자체 서명된 인증서 만들기
- 자동 크기 조정 가상 네트워크 만들기
- 예약된 공용 IP 만들기
- 애플리케이션 게이트웨이 인프라 설정
- 자동 크기 조정 지정
- Application Gateway 만들기
- 애플리케이션 게이트웨이 테스트
Azure 구독이 없는 경우, 시작하기 전에 무료 계정을 만드십시오.
Application Gateway v2의 가용성 영역 지원에 대한 자세한 내용은 Application Gateway v2에 대한 안정성을 참조하세요.
필수 조건
비고
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
이 자습서에서는 관리 Azure PowerShell 세션을 로컬로 실행해야 합니다. Azure PowerShell 모듈 버전 1.0.0 이상이 설치되어 있어야 합니다.
Get-Module -ListAvailable Az
을 실행하여 버전을 찾습니다. 업그레이드해야 하는 경우 Azure PowerShell 모듈 설치를 참조하세요. PowerShell 버전을 확인한 후 Connect-AzAccount
를 실행하여 Azure와의 연결을 만듭니다.
Azure에 로그인
Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"
리소스 그룹 만들기
사용 가능한 위치 중 하나에서 리소스 그룹을 만듭니다.
$___location = "East US 2"
$rg = "AppGW-rg"
#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $___location
자체 서명된 인증서 만들기
프로덕션에 사용하려면 신뢰할 수 있는 공급자가 서명한 유효한 인증서를 가져와야 합니다. 이 자습서에서는 New-SelfSignedCertificate를 사용하여 자체 서명된 인증서를 만듭니다. Export-PfxCertificate을 인증서에서 pfx 파일을 내보내도록 반환된 지문과 함께 사용할 수 있습니다.
New-SelfSignedCertificate `
-certstorelocation cert:\localmachine\my `
-dnsname www.contoso.com
다음과 같은 결과가 표시됩니다.
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my
Thumbprint Subject
---------- -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 CN=www.contoso.com
지문을 사용하여 pfx 파일을 만듭니다. 암호를 원하는 암호로 대체<합니다.>
$pwd = ConvertTo-SecureString -String "<password>" -Force -AsPlainText
Export-PfxCertificate `
-cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
-FilePath c:\appgwcert.pfx `
-Password $pwd
가상 네트워크 만들기
자동 크기 조정 애플리케이션 게이트웨이에 대한 하나의 전용 서브넷이 있는 가상 네트워크를 만듭니다. 현재는 각 전용 서브넷에 하나의 자동 크기 조정 애플리케이션 게이트웨이만 배포할 수 있습니다.
#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
-Location $___location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2
예약된 공용 IP 만들기
PublicIPAddress의 할당 메서드를 Static으로 지정 합니다. 자동 크기 조정 애플리케이션 게이트웨이 VIP는 정적일 수 있습니다. 동적 IP는 지원되지 않습니다. 표준 PublicIpAddress SKU만 지원됩니다.
#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
-___location $___location -AllocationMethod Static -Sku Standard -Zone 1,2,3
세부 정보 검색
로컬 개체에서 리소스 그룹, 서브넷 및 IP의 세부 정보를 검색하여 애플리케이션 게이트웨이에 대한 IP 구성 세부 정보를 만듭니다.
$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet
웹앱 만들기
백 엔드 풀에 대해 두 개의 웹앱을 구성합니다.
site1-name< 및 site2-name을 도메인의 고유한 이름으로 바꿉>니다.<>azurewebsites.net
New-AzAppServicePlan -ResourceGroupName $rg -Name "ASP-01" -Location $___location -Tier Basic `
-NumberofWorkers 2 -WorkerSize Small
New-AzWebApp -ResourceGroupName $rg -Name <site1-name> -Location $___location -AppServicePlan ASP-01
New-AzWebApp -ResourceGroupName $rg -Name <site2-name> -Location $___location -AppServicePlan ASP-01
인프라 구성
기존 표준 애플리케이션 게이트웨이와 동일한 형식으로 IP 구성, 프런트 엔드 IP 구성, 백 엔드 풀, HTTP 설정, 인증서, 포트, 수신기 및 규칙을 구성합니다. 새 SKU는 표준 SKU와 동일한 개체 모델을 따릅니다.
$pool 변수 정의에서 두 개의 웹앱 FQDN(예: mywebapp.azurewebsites.net
)을 바꿉니다.
$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPConfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
-BackendIPAddresses <your first web app FQDN>, <your second web app FQDN>
$fp01 = New-AzApplicationGatewayFrontendPort -Name "SSLPort" -Port 443
$fp02 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80
$securepfxpwd = ConvertTo-SecureString -String "Azure123456!" -AsPlainText -Force
$sslCert01 = New-AzApplicationGatewaySslCertificate -Name "SSLCert" -Password $securepfxpwd `
-CertificateFile "c:\appgwcert.pfx"
$listener01 = New-AzApplicationGatewayHttpListener -Name "SSLListener" `
-Protocol Https -FrontendIPConfiguration $fip -FrontendPort $fp01 -SslCertificate $sslCert01
$listener02 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
-Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp02
$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
-Port 80 -Protocol Http -CookieBasedAffinity Disabled -PickHostNameFromBackendAddress
$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
-BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -Priority 1
$rule02 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule2" -RuleType basic `
-BackendHttpSettings $setting -HttpListener $listener02 -BackendAddressPool $pool -Priority 2
자동 크기 조정 지정
이제 애플리케이션 게이트웨이에 대한 자동 크기 조정 구성을 지정할 수 있습니다.
$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2
이 모드에서 애플리케이션 게이트웨이는 애플리케이션 트래픽 패턴에 따라 자동 크기 조정됩니다.
Application Gateway 만들기
애플리케이션 게이트웨이를 만들고 중복 영역 및 자동 크기 조정 구성을 포함합니다.
$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 `
-ResourceGroupName $rg -Location $___location -BackendAddressPools $pool `
-BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig `
-FrontendIpConfigurations $fip -FrontendPorts $fp01, $fp02 `
-HttpListeners $listener01, $listener02 -RequestRoutingRules $rule01, $rule02 `
-Sku $sku -sslCertificates $sslCert01 -AutoscaleConfiguration $autoscaleConfig
애플리케이션 게이트웨이 테스트
Get-AzPublicIPAddress 사용하여 애플리케이션 게이트웨이의 공용 IP 주소를 가져옵니다. 공용 IP 주소 또는 DNS 이름을 복사한 다음 브라우저의 주소 표시줄에 붙여넣습니다.
$pip = Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
$pip.IpAddress
자원을 정리하세요
먼저 애플리케이션 게이트웨이를 사용하여 만든 리소스를 탐색합니다. 그런 다음 더 이상 필요하지 않은 경우 명령을 사용하여 Remove-AzResourceGroup
리소스 그룹, 애플리케이션 게이트웨이 및 모든 관련 리소스를 제거할 수 있습니다.
Remove-AzResourceGroup -Name $rg