빠른 시작: Azure PowerShell을 사용한 Azure Application Gateway를 통해 웹 트래픽 보내기
이 문서의 내용
필수 조건
Azure Cloud Shell
Azure에 연결
리소스 그룹 만들기
네트워크 리소스 만들기
애플리케이션 게이트웨이 만들기
애플리케이션 게이트웨이 테스트
리소스 정리
다음 단계
5개 더 표시
이 빠른 시작에서는 Azure PowerShell을 사용하여 애플리케이션 게이트웨이를 만듭니다. 그런 다음, 테스트하여 제대로 작동하는지 확인합니다.
애플리케이션 게이트웨이는 애플리케이션 웹 트래픽을 백 엔드 풀의 특정 리소스로 보냅니다. 수신기를 포트에 할당하고, 규칙을 만들고, 백 엔드 풀에 리소스를 추가합니다. 간단히 나타내기 위해 이 문서에서는 퍼블릭 프런트 엔드 IP 주소 1개, 애플리케이션 게이트웨이에 단일 사이트를 호스트하는 기본 수신기 1개, 기본 요청 라우팅 규칙 1개 및 백 엔드 풀의 가상 머신 2개를 이용한 간단한 설정을 사용합니다.
Azure CLI 또는 Azure Portal 을 사용하여 이 빠른 시작을 완료할 수도 있습니다.
참고
Application Gateway 프런트 엔드는 이제 이중 스택 IP 주소(미리 보기)를 지원합니다. 이제 최대 4개의 프런트 엔드 IP 주소, 즉 2개의 IPv4 주소(퍼블릭 및 프라이빗)와 2개의 IPv6 주소(퍼블릭 및 프라이빗)을 만들 수 있습니다.
Azure는 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 호스트합니다. Cloud Shell에서 Bash 또는 PowerShell을 사용하여 Azure 서비스 작업을 수행할 수 있습니다. 로컬 환경에 아무 것도 설치할 필요 없이 Azure Cloud Shell의 미리 설치된 명령을 사용하여 이 문서의 코드를 실행할 수 있습니다.
Azure Cloud Shell을 시작하려면 다음을 수행합니다.
테이블 확장
옵션
예제/링크
코드 또는 명령 블록의 오른쪽 상단에서 시도 를 선택합니다. 시도 를 선택해도 코드 또는 명령이 Cloud Shell에 자동으로 복사되지 않습니다.
https://shell.azure.com 으로 이동하거나 Cloud Shell 시작 단추를 선택하여 브라우저에서 Cloud Shell을 엽니다.
Azure Portal 의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다.
Azure Cloud Shell을 사용하려면:
Cloud Shell을 시작합니다.
코드 블록(또는 명령 블록)에서 복사 단추를 선택하여 코드 또는 명령을 복사합니다.
Windows 및 Linux에서 Ctrl +Shift +V 를 선택하거나 macOS에서 Cmd +Shift +V 를 선택하여 코드 또는 명령을 Cloud Shell 세션에 붙여넣습니다.
Enter 를 선택하여 코드 또는 명령을 실행합니다.
Azure에 연결하려면 Connect-AzAccount
를 실행합니다.
Azure에서 관련 리소스를 리소스 그룹에 할당합니다. 기존 리소스 그룹을 사용하거나 리소스 그룹을 새로 만들 수 있습니다.
새 리소스 그룹을 만들려면 New-AzResourceGroup
cmdlet을 사용합니다.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Azure가 사용자가 만든 리소스 간에 통신하려면 가상 네트워크가 필요합니다. 애플리케이션 게이트웨이 서브넷은 애플리케이션 게이트웨이만 포함할 수 있습니다. 다른 리소스는 허용되지 않습니다. Application Gateway에 대한 새 서브넷을 만들거나 기존 서브넷을 사용할 수 있습니다. 이 예제에서는 두 개의 서브넷을 만듭니다. 하나는 애플리케이션 게이트웨이용이고, 다른 하나는 백 엔드 서버용입니다. 사용 사례에 따라 Application Gateway의 프런트 엔드 IP 주소를 퍼블릭 또는 프라이빗으로 구성할 수 있습니다. 이 예제에서는 공용 프런트 엔드 IP 주소를 선택합니다.
New-AzVirtualNetworkSubnetConfig
를 사용하여 서브넷 구성을 만듭니다.
New-AzVirtualNetwork
를 사용하여 서브넷 구성이 포함된 가상 네트워크를 만듭니다.
New-AzPublicIpAddress
를 사용하여 공용 IP 주소를 만듭니다.
$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet `
-AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet `
-AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myVNet `
-AddressPrefix 10.21.0.0/16 `
-Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myAGPublicIPAddress `
-AllocationMethod Static `
-Sku Standard
이 예에서는 Standard v2 SKU가 사용되었습니다.
New-AzApplicationGatewayIPConfiguration
을 사용하여 이전에 만든 서브넷과 애플리케이션 게이트웨이를 연결하는 구성을 만듭니다.
New-AzApplicationGatewayFrontendIPConfig
를 사용하여 애플리케이션 게이트웨이에 대해 이전에 만든 공용 IP 주소를 할당하는 구성을 만듭니다.
New-AzApplicationGatewayFrontendPort
를 사용하여 애플리케이션 게이트웨이에 액세스할 포트 80을 할당합니다.
$vnet = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$pip = Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPConfig `
-PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
-Name myFrontendPort `
-Port 80
참고
Application Gateway 프런트 엔드는 이제 이중 스택 IP 주소(공개 미리 보기)를 지원합니다. 이제 최대 4개의 프런트 엔드 IP 주소, 즉 2개의 IPv4 주소(퍼블릭 및 프라이빗)와 2개의 IPv6 주소(퍼블릭 및 프라이빗)을 만들 수 있습니다.
New-AzApplicationGatewayBackendAddressPool
을 사용하여 애플리케이션 게이트웨이에 대한 백 엔드 풀을 만듭니다. 지금은 백 엔드 풀이 비어 있습니다. 다음 섹션에서 백 엔드 서버 NIC를 만들 때 백 엔드 풀에 추가합니다.
New-AzApplicationGatewayBackendHttpSetting
을 사용하여 백 엔드 풀에 대한 설정을 구성합니다.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
-Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 30
애플리케이션 게이트웨이가 트래픽을 백 엔드 풀로 적절히 라우팅하려면 Azure에 수신기가 필요합니다. 또한 수신기가 들어오는 트래픽에 어떤 백 엔드 풀을 사용해야 하는지 알 수 있도록 규칙이 필요합니다.
이전에 만든 프론트 엔드 구성 및 프론트 엔드 포트가 포함된 New-AzApplicationGatewayHttpListener
를 사용하여 수신기를 만듭니다.
New-AzApplicationGatewayRequestRoutingRule
을 사용하여 rule1 이라는 규칙을 만듭니다.
$defaultlistener = New-AzApplicationGatewayHttpListener `
-Name myAGListener `
-Protocol Http `
-FrontendIPConfiguration $fipconfig `
-FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
-Name rule1 `
-RuleType Basic `
-Priority 100 `
-HttpListener $defaultlistener `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolSettings
필요한 지원 리소스를 만들었으니, 이제 애플리케이션 게이트웨이를 만들겠습니다.
New-AzApplicationGatewaySku
를 사용하여 애플리케이션 게이트웨이에 대한 매개 변수를 지정합니다.
New-AzApplicationGateway
를 사용하여 애플리케이션 게이트웨이를 만듭니다.
$sku = New-AzApplicationGatewaySku `
-Name Standard_v2 `
-Tier Standard_v2 `
-Capacity 2
New-AzApplicationGateway `
-Name myAppGateway `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $backendPool `
-BackendHttpSettingsCollection $poolSettings `
-FrontendIpConfigurations $fipconfig `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners $defaultlistener `
-RequestRoutingRules $frontendRule `
-Sku $sku
팁
Name
및 Tier
매개 변수의 값을 수정하여 다른 SKU를 사용할 수 있습니다. 예: Basic
Application Gateway를 만들었으므로 웹 사이트를 호스트할 백 엔드 가상 머신을 만듭니다. 백 엔드는 NIC, 가상 머신 확장 집합, 공용 IP 주소, 내부 IP 주소, FQDN(정규화된 도메인 이름) 및 다중 테넌트 백 엔드(예: Azure App Service)로 구성될 수 있습니다.
이 예제에서는 애플리케이션 게이트웨이의 백 엔드 서버로 사용되는 두 개의 가상 머신을 만듭니다. 또한 Azure가 애플리케이션 게이트웨이를 성공적으로 만들었는지 확인할 수 있도록 가상 머신에 IIS를 설치합니다.
Get-AzApplicationGatewayBackendAddressPool
을 사용하여 최근에 만든 Application Gateway 백 엔드 풀 구성을 가져옵니다.
New-AzNetworkInterface
를 사용하여 네트워크 인터페이스를 만듭니다.
New-AzVMConfig
를 사용하여 가상 머신 구성을 만듭니다.
New-AzVM
을 사용하여 가상 머신을 만듭니다.
가상 머신을 만드는 다음 코드 샘플을 실행하면 Azure가 자격 증명을 요청합니다. 사용자 이름 및 암호를 입력합니다.
$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
$nic = New-AzNetworkInterface `
-Name myNic$i `
-ResourceGroupName myResourceGroupAG `
-Location EastUS `
-Subnet $subnet `
-ApplicationGatewayBackendAddressPool $backendpool
$vm = New-AzVMConfig `
-VMName myVM$i `
-VMSize Standard_DS2_v2
Set-AzVMOperatingSystem `
-VM $vm `
-Windows `
-ComputerName myVM$i `
-Credential $cred
Set-AzVMSourceImage `
-VM $vm `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest
Add-AzVMNetworkInterface `
-VM $vm `
-Id $nic.Id
Set-AzVMBootDiagnostic `
-VM $vm `
-Disable
New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
Set-AzVMExtension `
-ResourceGroupName myResourceGroupAG `
-ExtensionName IIS `
-VMName myVM$i `
-Publisher Microsoft.Compute `
-ExtensionType CustomScriptExtension `
-TypeHandlerVersion 1.4 `
-SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
-Location EastUS
}
애플리케이션 게이트웨이를 만들려면 반드시 IIS가 필요한 것은 아니지만, 이 빠른 시작에서는 Azure가 애플리케이션 게이트웨이를 성공적으로 만들었는지 확인하기 위해 설치했습니다.
IIS를 사용하여 애플리케이션 게이트웨이 테스트:
Get-AzPublicIPAddress
를 사용하여 애플리케이션 게이트웨이의 공용 IP 주소를 가져옵니다.
공용 IP 주소를 복사하여 브라우저의 주소 표시줄에 붙여넣습니다. 브라우저를 새로 고치면 가상 머신의 이름이 표시됩니다. 응답이 유효하면 애플리케이션 게이트웨이가 성공적으로 만들어졌으며 백 엔드에 성공적으로 연결할 수 있다는 의미입니다.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
애플리케이션 게이트웨이로 만든 리소스가 더 이상 필요 없으면 리소스 그룹을 삭제합니다. 리소스 그룹을 삭제하면 애플리케이션 게이트웨이 및 모든 관련 리소스도 함께 삭제됩니다.
리소스 그룹을 삭제하려면 Remove-AzResourceGroup
cmdlet을 호출합니다.
Remove-AzResourceGroup -Name myResourceGroupAG