Azure App Service에서 가상 네트워크 통합 사용

Azure App Service 앱에서 Azure 가상 네트워크와 통합하면 가상 네트워크 내의 앱에서 프라이빗 리소스에 연결할 수 있습니다.

필수 조건

가상 네트워크 통합 기능에는 다음이 필요합니다.

서브넷은 Microsoft.Web/serverFarms에 위임되어야 합니다. 통합 전에 위임이 수행되지 않은 경우 프로비전 프로세스에서 이 위임을 구성합니다. 서브넷은 IPv4 /28 블록(16개 주소)을 할당해야 합니다. 최대 수평 배율을 허용하려면 최소 64개의 주소(IPv4 /26 블록)가 있는 것이 좋습니다.

가상 네트워크가 앱과 다른 구독에 있는 경우 가상 네트워크가 있는 구독이 Microsoft.Web 리소스 공급자에 대해 등록되었는지 확인해야 합니다. 이 설명서에 따라 공급자를 명시적으로 등록할 수 있지만 구독에서 첫 번째 웹앱을 만들 때 자동으로 등록됩니다.

Azure Portal에서 구성

  1. App Service 포털에서 네트워킹으로 이동합니다. 아웃바운드 트래픽 구성에서 가상 네트워크 통합을 선택합니다.

  2. 가상 네트워크 통합 추가를 선택합니다.

    Screenshot that shows selecting Virtual network integration.

  3. 드롭다운 목록에는 동일한 지역에서 사용자가 구독하는 모든 가상 네트워크가 포함됩니다. 빈 기존 서브넷을 선택하거나 새 서브넷을 만듭니다.

    Screenshot that shows selecting the virtual network.

통합하는 동안에 앱이 다시 시작됩니다. 통합이 완료되면 통합된 가상 네트워크에 대한 세부 정보가 표시됩니다.

Azure CLI를 사용하여 구성

Azure CLI를 사용하여 가상 네트워크 통합을 구성할 수도 있습니다.

az webapp vnet-integration add --resource-group <group-name> --name <app-name> --vnet <vnet-name> --subnet <subnet-name>

참고 항목

이 명령은 서브넷이 Microsoft.Web/serverFarms에 위임되었는지 확인하고 구성되지 않은 경우 필요한 위임을 적용합니다. 서브넷이 구성되어 있고 확인 권한이 없거나 가상 네트워크가 다른 구독에 있는 경우 --skip-delegation-check 매개 변수를 사용하여 유효성 검사를 무시할 수 있습니다.

Azure PowerShell을 사용하여 구성

매개 변수를 준비합니다.

$siteName = '<app-name>'
$vNetResourceGroupName = '<group-name>'
$webAppResourceGroupName = '<group-name>'
$vNetName = '<vnet-name>'
$integrationSubnetName = '<subnet-name>'
$vNetSubscriptionId = '<subscription-guid>'

참고 항목

가상 네트워크가 웹앱이 아닌 다른 구독에 있는 경우 Set-AzContext -Subscription “xxxx-xxxx-xxxx-xxxx-xxxx” 명령을 사용하여 현재 구독 컨텍스트를 설정할 수 있습니다. 현재 구독 컨텍스트를 가상 네트워크가 배포된 구독으로 설정합니다.

서브넷이 Microsoft.Web/serverFarms에 위임되었는지 확인합니다.

$vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
Get-AzDelegation -Subnet $subnet

서브넷이 Microsoft.Web/serverFarms에 위임되지 않은 경우 아래 명령을 사용하여 위임을 추가합니다.

$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
Set-AzVirtualNetwork -VirtualNetwork $vnet

가상 네트워크 통합을 구성합니다.

참고 항목

웹앱이 가상 네트워크가 아닌 다른 구독에 있는 경우 Set-AzContext -Subscription “xxxx-xxxx-xxxx-xxxx” 명령을 사용하여 현재 구독 컨텍스트를 설정할 수 있습니다. 현재 구독 컨텍스트를 웹앱이 배포된 구독으로 설정합니다.

$subnetResourceId = "/subscriptions/$vNetSubscriptionId/resourceGroups/$vNetResourceGroupName/providers/Microsoft.Network/virtualNetworks/$vNetName/subnets/$integrationSubnetName"
$webApp = Get-AzResource -ResourceType Microsoft.Web/sites -ResourceGroupName $webAppResourceGroupName -ResourceName $siteName
$webApp.Properties.virtualNetworkSubnetId = $subnetResourceId
$webApp.Properties.vnetRouteAllEnabled = 'true'
$webApp | Set-AzResource -Force

다음 단계