Azure Functions 네트워킹 옵션Azure Functions networking options

이 문서에서는 Azure Functions에 대한 호스팅 옵션에서 사용할 수 있는 네트워킹 기능을 설명합니다.This article describes the networking features available across the hosting options for Azure Functions. 다음 네트워킹 옵션을 통해 인터넷 라우팅 가능한 주소를 사용하지 않고 리소스에 액세스하거나 함수 앱에 대한 인터넷 액세스를 제한할 수 있습니다.All the following networking options give you some ability to access resources without using internet-routable addresses or to restrict internet access to a function app.

호스팅 모델은 서로 다른 수준의 네트워크 격리를 사용할 수 있습니다.The hosting models have different levels of network isolation available. 올바른 격리를 선택하면 네트워크 격리 요구 사항을 충족할 수 있습니다.Choosing the correct one helps you meet your network isolation requirements.

다음 두 가지 방법으로 함수 앱을 호스트할 수 있습니다.You can host function apps in a couple of ways:

  • 다양한 수준의 가상 네트워크 연결 및 확장 옵션을 사용하여 다중 테넌트 인프라에서 실행되는 요금제 옵션 중에서 선택할 수 있습니다.You can choose from plan options that run on a multitenant infrastructure, with various levels of virtual network connectivity and scaling options:
    • 사용 계획은 부하에 대응하여 동적으로 확장되고 최소한의 네트워크 격리 옵션을 제공합니다.The Consumption plan scales dynamically in response to load and offers minimal network isolation options.
    • 프리미엄 계획은 동적으로 확장되고 보다 포괄적인 네트워크 격리를 제공합니다.The Premium plan also scales dynamically and offers more comprehensive network isolation.
    • Azure App Service 계획은 고정된 규모에서 작동하며 프리미엄 계획과 비슷한 네트워크 격리를 제공합니다.The Azure App Service plan operates at a fixed scale and offers network isolation similar to the Premium plan.
  • App Service Environment에서 함수를 실행할 수 있습니다.You can run functions in an App Service Environment. 이 메서드는 가상 네트워크에 함수를 배포하고 전체 네트워크 제어 및 격리를 제공합니다.This method deploys your function into your virtual network and offers full network control and isolation.

네트워킹 기능 매트릭스Matrix of networking features

기능Feature 사용 계획Consumption plan 프리미엄 플랜Premium plan 전용 계획Dedicated plan ASEASE KubernetesKubernetes
인바운드 IP 제한 및 프라이빗 사이트 액세스Inbound IP restrictions and private site access ✅예✅Yes ✅예✅Yes ✅예✅Yes ✅예✅Yes ✅예✅Yes
가상 네트워크 통합Virtual network integration ❌아니요❌No ✅예(지역)✅Yes (Regional) ✅예(지역 및 게이트웨이)✅Yes (Regional and Gateway) ✅예✅Yes ✅예✅Yes
가상 네트워크 트리거(비 HTTP)Virtual network triggers (non-HTTP) ❌아니요❌No ✅예✅Yes ✅예✅Yes ✅예✅Yes ✅예✅Yes
하이브리드 연결(Windows 전용)Hybrid connections (Windows only) ❌아니요❌No ✅예✅Yes ✅예✅Yes ✅예✅Yes ✅예✅Yes
아웃바운드 IP 제한Outbound IP restrictions ❌아니요❌No ✅예✅Yes ✅예✅Yes ✅예✅Yes ✅예✅Yes

인바운드 액세스 제한Inbound access restrictions

액세스 제한을 사용하여 앱 액세스가 허용 또는 거부되는 IP 주소의 목록을 우선 순위대로 정의할 수 있습니다.You can use access restrictions to define a priority-ordered list of IP addresses that are allowed or denied access to your app. 이 목록에는 IPv4 및 IPv6 주소나 서비스 엔드포인트를 사용하는 특정 가상 네트워크 서브넷이 포함될 수 있습니다.The list can include IPv4 and IPv6 addresses, or specific virtual network subnets using service endpoints. 하나 이상의 항목이 있는 경우 목록 끝에 암시적 "모두 거부"가 표시됩니다.When there are one or more entries, an implicit "deny all" exists at the end of the list. IP 제한은 모든 함수 호스팅 옵션에서 작동합니다.IP restrictions work with all function-hosting options.

액세스 제한은 프리미엄, 사용량, App Service에서 사용할 수 있습니다.Access restrictions are available in the Premium, Consumption, and App Service.

참고

네트워크 제한을 사용하는 경우 가상 네트워크 내에서만 배포하거나, 사용 중인 컴퓨터의 IP 주소를 안전 수신자 목록의 Azure Portal에 액세스하는 데 사용할 수 있습니다.With network restrictions in place, you can deploy only from within your virtual network, or when you've put the IP address of the machine you're using to access the Azure portal on the Safe Recipients list. 그러나 포털을 사용하여 함수를 관리할 수는 있습니다.However, you can still manage the function using the portal.

자세히 알아보려면 Azure App Service 정적 액세스 제한을 참조하세요.To learn more, see Azure App Service static access restrictions.

서비스 엔드포인트 사용Use service endpoints

서비스 엔드포인트를 사용하여 선택한 Azure 가상 네트워크 서브넷에 대한 액세스를 제한할 수 있습니다.By using service endpoints, you can restrict access to selected Azure virtual network subnets. 특정 서브넷에 대한 액세스를 제한하려면 Virtual Network 유형을 사용하여 제한 규칙을 만듭니다.To restrict access to a specific subnet, create a restriction rule with a Virtual Network type. 그런 다음 액세스를 허용하거나 거부할 구독, 가상 네트워크 및 서브넷을 선택할 수 있습니다.You can then select the subscription, virtual network, and subnet that you want to allow or deny access to.

선택한 서브넷에 대한 서비스 엔드포인트가 아직 Microsoft 웹에서 사용하도록 설정되지 않은 경우 누락된 Microsoft.Web 서비스 엔드포인트를 무시 확인란을 선택하지 않으면 자동으로 사용하도록 설정됩니다.If service endpoints aren't already enabled with Microsoft.Web for the subnet that you selected, they'll be automatically enabled unless you select the Ignore missing Microsoft.Web service endpoints check box. 앱에서 서비스 엔드포인트는 사용하고 서브넷은 사용하지 않도록 설정할 수 있는 시나리오는 대체로 서브넷에서 사용하도록 설정할 권한이 있는지에 따라 달라집니다.The scenario where you might want to enable service endpoints on the app but not the subnet depends mainly on whether you have the permissions to enable them on the subnet.

다른 사용자가 서브넷에서 서비스 엔드포인트를 사용하도록 설정해야 하는 경우 누락된 Microsoft.Web 서비스 엔드포인트를 무시 확인란을 선택합니다.If you need someone else to enable service endpoints on the subnet, select the Ignore missing Microsoft.Web service endpoints check box. 앱은 나중에 서브넷에서 사용하도록 설정할 것을 예측하여 서비스 엔드포인트에 대해 구성됩니다.Your app will be configured for service endpoints in anticipation of having them enabled later on the subnet.

Virtual Network 유형이 선택된 "IP 제한 추가" 창의 스크린샷.

서비스 엔드포인트를 사용하여 App Service Environment에서 실행되는 앱에 대한 액세스를 제한할 수 없습니다.You can't use service endpoints to restrict access to apps that run in an App Service Environment. 앱이 App Service Environment에 있는 경우 IP 액세스 규칙을 적용하여 해당 앱에 대한 액세스를 제어할 수 있습니다.When your app is in an App Service Environment, you can control access to it by applying IP access rules.

서비스 엔드포인트를 설정하는 방법을 알아보려면 Azure Functions 프라이빗 사이트 액세스 설정을 참조하세요.To learn how to set up service endpoints, see Establish Azure Functions private site access.

프라이빗 엔드포인트 연결Private endpoint connections

Azure 프라이빗 엔드포인트는 Azure Private Link를 기반으로 하는 서비스에 비공개로 안전하게 연결하는 네트워크 인터페이스입니다.Azure Private Endpoint is a network interface that connects you privately and securely to a service powered by Azure Private Link. 프라이빗 엔드포인트는 가상 네트워크의 프라이빗 IP 주소를 사용하여 효과적으로 가상 네트워크에 서비스를 제공합니다.Private Endpoint uses a private IP address from your virtual network, effectively bringing the service into your virtual network.

프리미엄App Service 계획에서 호스트 되는 함수에 대해 개인 끝점을 사용할 수 있습니다.You can use Private Endpoint for your functions hosted in the Premium and App Service plans.

함수에 대 한 인바운드 개인 끝점 연결을 만들 때 전용 주소를 확인 하려면 DNS 레코드가 필요 합니다.When creating an inbound private endpoint connection for functions, you will also need a DNS record to resolve the private address. 기본적으로 Azure Portal를 사용 하 여 개인 끝점을 만들 때 개인 DNS 레코드가 생성 됩니다.By default a private DNS record will be created for you when creating a private endpoint using the Azure portal.

자세한 내용은 Web Apps 전용 끝점 사용을 참조 하세요.To learn more, see using Private Endpoints for Web Apps.

스토리지 또는 Service Bus와 같은 개인 엔드포인트 연결이 있는 다른 서비스를 호출하려면 프라이빗 엔드포인트에 대한 아웃바운드 호출을 수행하도록 앱을 구성해야 합니다.To call other services that have a private endpoint connection, such as storage or service bus, be sure to configure your app to make outbound calls to private endpoints.

가상 네트워크 통합Virtual network integration

가상 네트워크 통합을 사용하면 함수 앱이 가상 네트워크 내의 리소스에 액세스할 수 있습니다.Virtual network integration allows your function app to access resources inside a virtual network. Azure Functions는 두 종류의 가상 네트워크 통합을 지원합니다.Azure Functions supports two kinds of virtual network integration:

  • 격리를 제외한 모든 가격 책정 계획을 지 원하는 다중 테 넌 트 시스템The multitenant systems that support the full range of pricing plans except Isolated.
  • App Service Environment는 VNet에 배포 되 고 격리 된 가격 책정 계획 앱을 지원 합니다.The App Service Environment, which deploys into your VNet and supports Isolated pricing plan apps.

VNet 통합 기능은 다중 테 넌 트 앱에서 사용 됩니다.The VNet Integration feature is used in multitenant apps. 앱이 App Service Environment에 있는 경우 이미 VNet에 있으므로 VNet 통합 기능을 사용하여 동일한 VNet의 리소스에 연결할 필요가 없습니다.If your app is in App Service Environment, then it's already in a VNet and doesn't require use of the VNet Integration feature to reach resources in the same VNet. 모든 네트워킹 기능에 대 한 자세한 내용은 App Service 네트워킹 기능을 참조 하세요.For more information on all of the networking features, see App Service networking features.

VNet 통합은 vnet의 리소스에 대 한 앱 액세스를 제공 하지만 VNet에서 앱에 대 한 인바운드 개인 액세스를 부여 하지 않습니다.VNet Integration gives your app access to resources in your VNet, but it doesn't grant inbound private access to your app from the VNet. 개인 사이트 액세스는 Azure virtual network 내에서와 같은 개인 네트워크 에서만 앱에 액세스할 수 있도록 하는 것을 말합니다.Private site access refers to making an app accessible only from a private network, such as from within an Azure virtual network. VNet 통합은 앱에서 VNet으로의 아웃 바운드 호출을 수행 하는 데만 사용 됩니다.VNet Integration is used only to make outbound calls from your app into your VNet. Vnet 통합 기능은 동일한 지역에서 vnet과 다른 지역의 VNet에서 사용 되는 경우 다르게 동작 합니다.The VNet Integration feature behaves differently when it's used with VNet in the same region and with VNet in other regions. VNet 통합 기능에는 두 가지 변형이 있습니다.The VNet Integration feature has two variations:

  • 지역 VNet 통합: 동일한 지역에서 Azure Resource Manager 가상 네트워크에 연결 하는 경우 통합 하는 VNet에 전용 서브넷이 있어야 합니다.Regional VNet Integration: When you connect to Azure Resource Manager virtual networks in the same region, you must have a dedicated subnet in the VNet you're integrating with.
  • 게이트웨이-필수 Vnet 통합: 다른 지역의 VNet 또는 동일한 지역의 클래식 가상 네트워크에 연결 하는 경우 대상 vnet에서 프로 비전 된 Azure Virtual Network Gateway가 필요 합니다.Gateway-required VNet Integration: When you connect to VNet in other regions or to a classic virtual network in the same region, you need an Azure Virtual Network gateway provisioned in the target VNet.

VNet 통합 기능:The VNet Integration features:

  • Standard, Premium, PremiumV2, PremiumV3 또는 탄력적 프리미엄 요금제가 필요 합니다.Require a Standard, Premium, PremiumV2, PremiumV3, or Elastic Premium pricing plan.
  • TCP 및 UDP를 지원 합니다.Support TCP and UDP.
  • Azure App Service 앱 및 함수 앱을 사용 합니다.Work with Azure App Service apps and function apps.

VNet 통합에서 지원 하지 않는 몇 가지 사항은 다음과 같습니다.There are some things that VNet Integration doesn't support, like:

  • 드라이브 탑재Mounting a drive.
  • Active Directory 통합.Active Directory integration.
  • NetBIOS.NetBIOS.

게이트웨이-필요한 VNet 통합은 대상 VNet 또는 피어 링 또는 Vpn을 사용 하 여 대상 VNet에 연결 된 네트워크에 있는 리소스에 대 한 액세스를 제공 합니다.Gateway-required VNet Integration provides access to resources only in the target VNet or in networks connected to the target VNet with peering or VPNs. 게이트웨이-필요한 VNet 통합은 Azure Express 경로 연결에서 사용할 수 있는 리소스에 대 한 액세스를 허용 하지 않으며 서비스 끝점으로 작업 합니다.Gateway-required VNet Integration doesn't enable access to resources available across Azure ExpressRoute connections or work with service endpoints.

사용 된 버전에 관계 없이 vnet 통합은 vnet의 리소스에 대 한 앱 액세스를 제공 하지만 VNet에서 앱에 대 한 인바운드 개인 액세스를 부여 하지 않습니다.Regardless of the version used, VNet Integration gives your app access to resources in your VNet, but it doesn't grant inbound private access to your app from the VNet. 개인 사이트 액세스는 Azure VNet 내에서와 같이 개인 네트워크 에서만 앱에 액세스할 수 있도록 하는 것을 말합니다.Private site access refers to making your app accessible only from a private network, such as from within an Azure VNet. VNet 통합은 앱에서 VNet으로의 아웃 바운드 호출을 수행 하는 경우에만 사용할 수 있습니다.VNet Integration is only for making outbound calls from your app into your VNet.

Azure Functions의 가상 네트워크 통합은 App Service 웹 앱에 공유 인프라를 사용합니다.Virtual network integration in Azure Functions uses shared infrastructure with App Service web apps. 가상 네트워크 통합의 두 유형을 자세히 알아보려면 다음을 참조하세요.To learn more about the two types of virtual network integration, see:

가상 네트워크 통합을 설정하는 방법에 대한 자세한 내용은 Azure 가상 네트워크에 함수 앱 통합을 참조하세요.To learn how to set up virtual network integration, see Integrate a function app with an Azure virtual network.

지역 가상 네트워크 통합Regional virtual network integration

지역 VNet 통합을 사용하면 앱에서 다음에 액세스할 수 있습니다.Using regional VNet Integration enables your app to access:

  • 앱과 동일한 지역에 있는 VNet의 리소스Resources in a VNet in the same region as your app.
  • 앱이 통합된 VNet에 피어링된 VNet의 리소스Resources in VNets peered to the VNet your app is integrated with.
  • 서비스 엔드포인트 보안 서비스Service endpoint secured services.
  • Azure ExpressRoute 연결의 리소스Resources across Azure ExpressRoute connections.
  • 통합된 VNet의 리소스Resources in the VNet you're integrated with.
  • Azure ExpressRoute 연결을 포함하는 피어링된 연결의 리소스Resources across peered connections, which include Azure ExpressRoute connections.
  • 프라이빗 엔드포인트Private endpoints

동일한 지역에서 VNet과 VNet 통합을 사용하는 경우 다음과 같은 Azure 네트워킹 기능을 사용할 수 있습니다.When you use VNet Integration with VNets in the same region, you can use the following Azure networking features:

  • NSG(네트워크 보안 그룹) : 통합 서브넷에 배치된 NSG를 사용하여 아웃바운드 트래픽을 차단할 수 있습니다.Network security groups (NSGs): You can block outbound traffic with an NSG that's placed on your integration subnet. 인바운드 규칙은 적용되지 않습니다. VNet 통합을 사용하여 앱에 대한 인바운드 액세스를 제공할 수 없기 때문입니다.The inbound rules don't apply because you can't use VNet Integration to provide inbound access to your app.
  • 경로 테이블(UDR) : 통합 서브넷에 경로 테이블을 배치하여 원하는 위치에 아웃바운드 트래픽을 보낼 수 있습니다.Route tables (UDRs): You can place a route table on the integration subnet to send outbound traffic where you want.

기본적으로 앱은 RFC1918 트래픽만 VNet으로 라우팅합니다.By default, your app routes only RFC1918 traffic into your VNet. 모든 아웃바운드 트래픽을 VNet으로 라우팅하려면 다음 단계를 사용하여 앱에 WEBSITE_VNET_ROUTE_ALL 설정을 추가합니다.If you want to route all of your outbound traffic into your VNet, use the following steps to add the WEBSITE_VNET_ROUTE_ALL setting in your app:

  1. 앱 포털에서 구성 UI로 이동합니다.Go to the Configuration UI in your app portal. 새 애플리케이션 설정 을 선택합니다.Select New application setting.

  2. 이름 상자에 WEBSITE_VNET_ROUTE_ALL을 입력하고 상자에 1을 입력합니다.Enter WEBSITE_VNET_ROUTE_ALL in the Name box, and enter 1 in the Value box.

    애플리케이션 설정 제공

  3. 확인 을 선택합니다.Select OK.

  4. 저장 을 선택합니다.Select Save.

참고

모든 아웃바운드 트래픽을 VNet으로 라우팅하면 통합 서브넷에 적용되는 NSG 및 UDR이 적용됩니다.When you route all of your outbound traffic into your VNet, it's subject to the NSGs and UDRs that are applied to your integration subnet. WEBSITE_VNET_ROUTE_ALL1로 설정하면 트래픽을 다른 곳으로 전달하는 경로를 제공하지 않는 한 아웃바운드 트래픽은 앱 속성에 나열된 주소에서 계속 전송됩니다.When WEBSITE_VNET_ROUTE_ALL is set to 1, outbound traffic is still sent from the addresses that are listed in your app properties, unless you provide routes that direct the traffic elsewhere.

지역 VNet 통합은 포트 25를 사용할 수 없습니다.Regional VNet integration isn't able to use port 25.

동일한 지역에서 VNet과 VNet 통합을 사용하는 경우 몇 가지 제한 사항이 있습니다.There are some limitations with using VNet Integration with VNets in the same region:

  • 글로벌 피어링 연결에서 리소스에 연결할 수 없습니다.You can't reach resources across global peering connections.
  • 이 기능은 프리미엄 V2 및 프리미엄 V3의 모든 App Service 배율 단위에서 사용할 수 있습니다.The feature is available from all App Service scale units in Premium V2 and Premium V3. 표준에서도 사용할 수 있지만 최신 App Service 배율 단위에서만 사용할 수 있습니다.It's also available in Standard but only from newer App Service scale units. 이전 배율 단위를 사용하는 경우 프리미엄 V2 App Service 요금제의 기능만 사용할 수 있습니다.If you are on an older scale unit, you can only use the feature from a Premium V2 App Service plan. 표준 App Service 요금제에서 이 기능을 사용할 수 있도록 하려면 프리미엄 V3 App Service 요금제에서 앱을 만듭니다.If you want to make sure you can use the feature in a Standard App Service plan, create your app in a Premium V3 App Service plan. 이러한 플랜은 최신 배율 단위에서만 지원됩니다.Those plans are only supported on our newest scale units. 그 후에 원하는 경우 스케일 다운할 수 있습니다.You can scale down if you desire after that.
  • 통합 서브넷은 App Service 요금제 하나에서만 사용할 수 있습니다.The integration subnet can be used by only one App Service plan.
  • 이 기능은 App Service Environment에 있는 격리 요금제 앱에서 사용할 수 없습니다.The feature can't be used by Isolated plan apps that are in an App Service Environment.
  • 이 기능에는 Azure Resource Manager VNet에서 /28 이상의 사용하지 않는 서브넷이 필요합니다.The feature requires an unused subnet that's a /28 or larger in an Azure Resource Manager VNet.
  • 앱과 VNet은 동일한 지역에 있어야 합니다.The app and the VNet must be in the same region.
  • 통합된 앱이 있는 VNet은 삭제할 수 없습니다.You can't delete a VNet with an integrated app. VNet을 삭제하기 전에 통합을 제거하세요.Remove the integration before you delete the VNet.
  • 지역 VNet 통합은 App Service 요금제당 하나만 가능합니다.You can have only one regional VNet Integration per App Service plan. 동일한 App Service 요금제의 여러 앱에서 동일한 VNet을 사용할 수 있습니다.Multiple apps in the same App Service plan can use the same VNet.
  • 지역 VNet 통합을 사용하는 앱이 있는 경우에는 앱 또는 플랜의 구독을 변경할 수 없습니다.You can't change the subscription of an app or a plan while there's an app that's using regional VNet Integration.
  • 앱은 구성 변경 없이 Azure DNS Private Zones의 주소를 확인할 수 없습니다.Your app can't resolve addresses in Azure DNS Private Zones without configuration changes.

VNet 통합은 전용 서브넷에 따라 다릅니다.VNet Integration depends on a dedicated subnet. 서브넷을 프로비전할 때 Azure 서브넷은 처음부터 5개의 IP를 잃습니다.When you provision a subnet, the Azure subnet loses five IPs from the start. 각 플랜 인스턴스에 대해 통합 서브넷에서 하나의 주소가 사용됩니다.One address is used from the integration subnet for each plan instance. 앱을 4개의 인스턴스로 스케일링하면 4개의 주소가 사용됩니다.When you scale your app to four instances, then four addresses are used.

크기를 스케일 업 또는 스케일 다운하면, 짧은 시간 동안 필요한 주소 공간이 2배가 됩니다.When you scale up or down in size, the required address space is doubled for a short period of time. 이렇게 되면 지정된 서브넷 크기에 대해 실제로 사용 가능한 지원되는 인스턴스에 영향을 줍니다.This affects the real, available supported instances for a given subnet size. 다음 표는 CIDR 블록당 사용 가능한 최대 주소와 이것이 수평 스케일링에 미치는 영향을 보여줍니다.The following table shows both the maximum available addresses per CIDR block and the impact this has on horizontal scale:

CIDR 블록 크기CIDR block size 사용 가능한 최대 주소Max available addresses 최대 수평 스케일링(인스턴스)*Max horizontal scale (instances)*
/28/28 1111 55
/27/27 2727 1313
/26/26 5959 2929

*어느 시점에서든 SKU 또는 크기를 스케일 업 또는 스케일 다운해야 한다고 가정합니다.*Assumes that you'll need to scale up or down in either size or SKU at some point.

할당 후에는 서브넷 크기를 변경할 수 없으므로 앱이 도달할 수 있는 모든 규모를 수용할 수 있을 정도로 충분히 큰 서브넷을 사용합니다.Since subnet size can't be changed after assignment, use a subnet that's large enough to accommodate whatever scale your app might reach. 서브넷 용량 관련 문제를 방지하려면 주소가 64개인 /26을 사용해야 합니다.To avoid any issues with subnet capacity, you should use a /26 with 64 addresses.

다른 플랜의 앱이 다른 플랜의 앱을 통해 이미 연결된 VNet에 도달하도록 하려면 기존 VNet 통합에서 사용 중인 서브넷과 다른 서브넷을 선택합니다.When you want your apps in another plan to reach a VNet that's already connected to by apps in another plan, select a different subnet than the one being used by the pre-existing VNet Integration.

이 기능은 사용자 지정 컨테이너를 포함하여 Windows 및 Linux 앱 모두에서 완벽하게 지원됩니다.The feature is fully supported for both Windows and Linux apps, including custom containers. 모든 동작은 Windows 앱과 Linux 앱 간에 동일하게 작동합니다.All of the behaviors act the same between Windows apps and Linux apps.

서비스 엔드포인트Service endpoints

지역 VNet 통합을 사용하면 서비스 엔드포인트로 보안이 유지되는 Azure 서비스에 연결할 수 있습니다.Regional VNet Integration enables you to reach Azure services that are secured with service endpoints. 서비스 엔드포인트 보안 서비스에 액세스하려면 다음을 수행해야 합니다.To access a service endpoint-secured service, you must do the following:

  1. 통합을 위해 특정 서브넷에 연결하도록 웹앱과 지역 VNet 통합을 구성합니다.Configure regional VNet Integration with your web app to connect to a specific subnet for integration.
  2. 대상 서비스로 이동하여 통합 서브넷에 대해 서비스 엔드포인트를 구성합니다.Go to the destination service and configure service endpoints against the integration subnet.

네트워크 보안 그룹Network security groups

네트워크 보안 그룹을 사용하여 VNet의 리소스에 대한 인바운드 및 아웃바운드 트래픽을 차단할 수 있습니다.You can use network security groups to block inbound and outbound traffic to resources in a VNet. 지역 VNet 통합을 사용하는 앱은 네트워크 보안 그룹을 사용하여 VNet 또는 인터넷의 리소스에 대한 아웃바운드 트래픽을 차단할 수 있습니다.An app that uses regional VNet Integration can use a network security group to block outbound traffic to resources in your VNet or the internet. 공용 주소에 대한 트래픽을 차단하려면 애플리케이션 설정 WEBSITE_VNET_ROUTE_ALL1로 설정해야 합니다.To block traffic to public addresses, you must have the application setting WEBSITE_VNET_ROUTE_ALL set to 1. NSG의 인바운드 규칙은 앱에 적용되지 않습니다. VNet 통합은 앱의 아웃바운드 트래픽에만 영향을 미치기 때문입니다.The inbound rules in an NSG don't apply to your app because VNet Integration affects only outbound traffic from your app.

앱에 대한 인바운드 트래픽을 제어하려면 액세스 제한 기능을 사용합니다.To control inbound traffic to your app, use the Access Restrictions feature. 통합 서브넷에 적용된 NSG는 통합 서브넷에 적용된 경로에 관계없이 적용됩니다.An NSG that's applied to your integration subnet is in effect regardless of any routes applied to your integration subnet. WEBSITE_VNET_ROUTE_ALL1로 설정되어 있고 통합 서브넷의 공용 주소 트래픽에 영향을 주는 경로가 없어도 모든 아웃바운드 트래픽은 여전히 통합 서브넷에 할당된 NSG의 적용을 받습니다.If WEBSITE_VNET_ROUTE_ALL is set to 1 and you don't have any routes that affect public address traffic on your integration subnet, all of your outbound traffic is still subject to NSGs assigned to your integration subnet. WEBSITE_VNET_ROUTE_ALL이 설정되지 않은 경우 NSG는 RFC1918 트래픽에만 적용됩니다.When WEBSITE_VNET_ROUTE_ALL isn't set, NSGs are only applied to RFC1918 traffic.

경로Routes

경로 테이블을 사용하여 앱의 아웃바운드 트래픽을 원하는 위치로 라우팅할 수 있습니다.You can use route tables to route outbound traffic from your app to wherever you want. 기본적으로 경로 테이블은 RFC1918 대상 트래픽에만 영향을 줍니다.By default, route tables only affect your RFC1918 destination traffic. WEBSITE_VNET_ROUTE_ALL1로 설정하면 모든 아웃바운드 호출이 영향을 받습니다.When you set WEBSITE_VNET_ROUTE_ALL to 1, all of your outbound calls are affected. 통합 서브넷에 설정된 경로는 인바운드 앱 요청에 대한 응답에 영향을 주지 않습니다.Routes that are set on your integration subnet won't affect replies to inbound app requests. 일반적인 대상에는 방화벽 디바이스나 게이트웨이가 포함될 수 있습니다.Common destinations can include firewall devices or gateways.

모든 아웃바운드 트래픽을 온-프레미스로 라우팅하려면 경로 테이블을 사용하여 모든 아웃바운드 트래픽을 ExpressRoute 게이트웨이로 보낼 수 있습니다.If you want to route all outbound traffic on-premises, you can use a route table to send all outbound traffic to your ExpressRoute gateway. 게이트웨이로 트래픽을 라우팅하는 경우에는 응답을 다시 보내도록 외부 네트워크에서 경로를 설정해야 합니다.If you do route traffic to a gateway, be sure to set routes in the external network to send any replies back.

BGP(Border Gateway Protocol) 경로도 앱 트래픽에 영향을 줍니다.Border Gateway Protocol (BGP) routes also affect your app traffic. ExpressRoute 게이트웨이와 같은 항목의 BGP 경로가 있는 경우 앱 아웃바운드 트래픽이 영향을 받습니다.If you have BGP routes from something like an ExpressRoute gateway, your app outbound traffic is affected. 기본적으로 BGP 경로는 RFC1918 대상 트래픽에만 영향을 줍니다.By default, BGP routes affect only your RFC1918 destination traffic. WEBSITE_VNET_ROUTE_ALL1로 설정하면 모든 아웃바운드 트래픽이 BGP 경로의 영향을 받을 수 있습니다.When WEBSITE_VNET_ROUTE_ALL is set to 1, all outbound traffic can be affected by your BGP routes.

Azure DNS 프라이빗 영역Azure DNS private zones

앱이 VNet과 통합되면 VNet이 구성된 것과 동일한 DNS 서버를 사용합니다.After your app integrates with your VNet, it uses the same DNS server that your VNet is configured with. 기본적으로 앱은 Azure DNS 프라이빗 영역에서 작동하지 않습니다.By default, your app won't work with Azure DNS private zones. Azure DNS 프라이빗 영역을 사용하려면 다음 앱 설정을 추가해야 합니다.To work with Azure DNS private zones, you need to add the following app settings:

  1. 값이 168.63.129.16WEBSITE_DNS_SERVERWEBSITE_DNS_SERVER with value 168.63.129.16
  2. 값이 1WEBSITE_VNET_ROUTE_ALLWEBSITE_VNET_ROUTE_ALL with value 1

이러한 설정은 앱의 모든 아웃바운드 호출을 VNet으로 보내고 앱이 Azure DNS 프라이빗 영역에 액세스할 수 있도록 합니다.These settings send all of your outbound calls from your app into your VNet and enable your app to access an Azure DNS private zone. 이러한 설정을 통해 앱은 작업자 수준에서 DNS 프라이빗 영역을 쿼리하여 Azure DNS를 사용할 수 있습니다.With these settings, your app can use Azure DNS by querying the DNS private zone at the worker level.

프라이빗 엔드포인트Private Endpoints

프라이빗 엔드포인트를 호출하려면 DNS 조회가 프라이빗 엔드포인트로 확인되는지 확인해야 합니다.If you want to make calls to Private Endpoints, then you must make sure that your DNS lookups resolve to the private endpoint. 이러한 동작은 다음 방법 중 하나로 적용할 수 있습니다.You can enforce this behavior in one of the following ways:

  • Azure DNS 프라이빗 영역과 통합합니다.Integrate with Azure DNS private zones. VNet에 사용자 지정 DNS 서버가 없으면 자동으로 수행됩니다.When your VNet doesn't have a custom DNS server, this is done automatically.
  • 앱에서 사용하는 DNS 서버에서 프라이빗 엔드포인트를 관리합니다.Manage the private endpoint in the DNS server used by your app. 이렇게 하려면 프라이빗 엔드포인트 주소를 알고 있어야 하며, A 레코드를 사용하여 해당 주소에 도달하려는 엔드포인트를 가리켜야 합니다.To do this you must know the private endpoint address and then point the endpoint you are trying to reach to that address using an A record.
  • Azure DNS 프라이빗 영역으로 전달하도록 자체 DNS 서버를 구성합니다.Configure your own DNS server to forward to Azure DNS private zones.

서비스 엔드포인트 보안 리소스에 연결Connect to service endpoint secured resources

높은 수준의 보안을 제공하기 위해 서비스 엔드포인트를 사용하여 여러 Azure 서비스를 가상 네트워크로 제한할 수 있습니다.To provide a higher level of security, you can restrict a number of Azure services to a virtual network by using service endpoints. 그런 다음 해당 가상 네트워크와 함수 앱을 통합하여 리소스에 액세스해야 합니다.You must then integrate your function app with that virtual network to access the resource. 이 구성은 가상 네트워크 통합을 지원하는 모든 요금제에서 지원됩니다.This configuration is supported on all plans that support virtual network integration.

자세한 내용은 가상 네트워크 서비스 엔드포인트를 참조하세요.To learn more, see Virtual network service endpoints.

가상 네트워크에 대한 스토리지 계정 제한Restrict your storage account to a virtual network

함수 앱을 만들 때 Blob, 큐 및 Table Storage을 지원하는 범용 Azure Storage 계정을 만들거나 연결해야 합니다.When you create a function app, you must create or link to a general-purpose Azure Storage account that supports Blob, Queue, and Table storage. 이 스토리지 계정은 서비스 엔드포인트 또는 프라이빗 엔드포인트로 보호되는 계정으로 바꿀 수 있습니다.You can replace this storage account with one that is secured with service endpoints or private endpoint.

현재 이 기능은 전용(App Service) 요금제로 모든 Windows 가상 네트워크 지원 SKU에서 작동하며 프리미엄 요금제에서 작동합니다.This feature currently works for all Windows virtual network-supported SKUs in the Dedicated (App Service) plan and for the Premium plan. 사용량 요금제는 지원되지 않습니다.The Consumption plan isn't supported. 개인 네트워크로 제한된 스토리지 계정을 사용하여 함수를 설정하는 방법을 알아보려면 가상 네트워크에 대한 스토리지 계정 제한을 참조하세요.To learn how to set up a function with a storage account restricted to a private network, see Restrict your storage account to a virtual network.

Key Vault 참조 사용Use Key Vault references

Azure Key Vault 참조를 사용하여 코드 변경 없이도 Azure Functions 애플리케이션에서 Azure Key Vault의 비밀을 사용할 수 있습니다.You can use Azure Key Vault references to use secrets from Azure Key Vault in your Azure Functions application without requiring any code changes. Azure Key Vault는 액세스 정책 및 감사 기록에 대한 전체 제어와 함께 중앙 집중식 비밀 관리를 제공하는 서비스입니다.Azure Key Vault is a service that provides centralized secrets management, with full control over access policies and audit history.

현재 서비스 엔드포인트로 Ket Vault가 보호되지 않는 경우 Key Vault 참조가 작동하지 않습니다.Currently, Key Vault references won't work if your key vault is secured with service endpoints. 가상 네트워크 통합을 사용하여 Key Vault에 연결하려면 애플리케이션 코드에서 Key Vault를 호출해야 합니다.To connect to a key vault by using virtual network integration, you need to call Key Vault in your application code.

가상 네트워크 트리거(비 HTTP)Virtual network triggers (non-HTTP)

현재 다음 두 가지 방법 중 하나로 가상 네트워크 내에서 비 HTTP 트리거 함수를 사용할 수 있습니다.Currently, you can use non-HTTP trigger functions from within a virtual network in one of two ways:

  • 프리미엄 계획에서 함수 앱을 실행하고 가상 네트워크 트리거 지원을 사용 설정합니다.Run your function app in a Premium plan and enable virtual network trigger support.
  • App Service 계획 또는 App Service Environment에서 함수 앱을 실행합니다.Run your function app in an App Service plan or App Service Environment.

가상 네트워크 트리거를 사용하는 프리미엄 계획Premium plan with virtual network triggers

프리미엄 계획을 실행하는 경우 비 HTTP 트리거 함수를 가상 네트워크 내에서 실행되는 서비스에 연결할 수 있습니다.When you run a Premium plan, you can connect non-HTTP trigger functions to services that run inside a virtual network. 이렇게 하려면 함수 앱에 대한 가상 네트워크 트리거 지원을 사용하도록 설정해야 합니다.To do this, you must enable virtual network trigger support for your function app. 런타임 크기 조정 모니터링 설정은 구성 > 함수 런타임 설정Azure Portal에서 확인할 수 있습니다.The Runtime Scale Monitoring setting is found in the Azure portal under Configuration > Function runtime settings.

VNETToggle

다음 Azure CLI 명령을 사용하여 가상 네트워크 트리거를 사용하도록 설정할 수도 있습니다.You can also enable virtual network triggers by using the following Azure CLI command:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

가상 네트워크 트리거를 사용하도록 설정하면 애플리케이션 성능에 영향을 줄 수 있습니다. App Service 요금제 인스턴스는 크기를 조정하는 시기를 결정하기 위해 트리거를 모니터링해야 하기 때문입니다.Enabling virtual network triggers may have an impact on the performance of your application since your App Service plan instances will need to monitor your triggers to determine when to scale. 이러한 영향은 매우 작을 가능성이 높습니다.This impact is likely to be very small.

가상 네트워크 트리거는 Functions 런타임의 버전 2.x 이상에서 지원됩니다.Virtual network triggers are supported in version 2.x and above of the Functions runtime. 다음과 같은 비 HTTP 트리거 형식이 지원됩니다.The following non-HTTP trigger types are supported.

내선 번호Extension 최소 버전Minimum version
Microsoft.Azure.WebJobs.Extensions.StorageMicrosoft.Azure.WebJobs.Extensions.Storage 3.0.10 이상3.0.10 or above
Microsoft.Azure.WebJobs.Extensions.EventHubsMicrosoft.Azure.WebJobs.Extensions.EventHubs 4.1.0 이상4.1.0 or above
Microsoft.Azure.WebJobs.Extensions.ServiceBusMicrosoft.Azure.WebJobs.Extensions.ServiceBus 3.2.0 이상3.2.0 or above
Microsoft.Azure.WebJobs.Extensions.CosmosDBMicrosoft.Azure.WebJobs.Extensions.CosmosDB 3.0.5 이상3.0.5 or above
Microsoft.Azure.WebJobs.Extensions.DurableTaskMicrosoft.Azure.WebJobs.Extensions.DurableTask 2.0.0 이상2.0.0 or above

중요

가상 네트워크 트리거 지원을 사용하도록 설정하면 이전 표에 표시된 트리거 유형만 애플리케이션을 사용하여 동적으로 확장됩니다.When you enable virtual network trigger support, only the trigger types shown in the previous table scale dynamically with your application. 표에 없는 트리거는 계속 사용할 수 있지만 예열된 인스턴스 수 이상으로 크기가 조정되지 않습니다.You can still use triggers that aren't in the table, but they're not scaled beyond their pre-warmed instance count. 트리거의 전체 목록은 트리거 및 바인딩을 참조하세요.For the complete list of triggers, see Triggers and bindings.

가상 네트워크 트리거를 사용하는 App Service 계획 및 App Service EnvironmentApp Service plan and App Service Environment with virtual network triggers

함수 앱이 App Service 계획 또는 App Service Environment에서 실행되는 경우 비 HTTP 트리거 함수를 사용할 수 있습니다.When your function app runs in either an App Service plan or an App Service Environment, you can use non-HTTP trigger functions. 함수가 올바르게 트리거되려면 트리거 연결에 정의된 리소스에 대한 액세스 권한이 있는 가상 네트워크에 연결되어야 합니다.For your functions to get triggered correctly, you must be connected to a virtual network with access to the resource defined in the trigger connection.

예를 들어 가상 네트워크의 트래픽만 허용하도록 Azure Cosmos DB를 구성하고자 한다고 가정하겠습니다.For example, assume you want to configure Azure Cosmos DB to accept traffic only from a virtual network. 이 경우 해당 가상 네트워크에 가상 네트워크 통합을 제공하는 App Service 계획에 함수 앱을 배포해야 합니다.In this case, you must deploy your function app in an App Service plan that provides virtual network integration with that virtual network. 통합을 사용하면 해당 Azure Cosmos DB 리소스에서 함수를 트리거할 수 있습니다.Integration enables a function to be triggered by that Azure Cosmos DB resource.

하이브리드 연결Hybrid Connections

하이브리드 연결은 다른 네트워크의 애플리케이션에 액세스하는 데 사용할 수 있는 Azure Relay의 기능입니다.Hybrid Connections is a feature of Azure Relay that you can use to access application resources in other networks. 이를 통해 앱에서 애플리케이션 엔드포인트에 액세스할 수 있습니다.It provides access from your app to an application endpoint. 이를 사용하여 애플리케이션 액세스할 수 없습니다.You can't use it to access your application. 하이브리드 연결은 사용 계획을 제외한 Windows에서 실행되는 함수에서 사용할 수 있습니다.Hybrid Connections is available to functions that run on Windows in all but the Consumption plan.

Azure Functions에서 사용되는 것처럼 각 하이브리드 연결은 단일 TCP 호스트 및 포트 조합에 상호 연결됩니다.As used in Azure Functions, each hybrid connection correlates to a single TCP host and port combination. 즉, TCP 수신 대기 포트에 액세스하는 한, 하이브리드 연결 엔드포인트는 모든 운영 체제 및 모든 애플리케이션에 있을 수 있습니다.This means that the hybrid connection's endpoint can be on any operating system and any application as long as you're accessing a TCP listening port. 하이브리드 연결 기능은 애플리케이션 프로토콜이 무엇인지 또는 사용자가 무엇에 액세스하고 있는지 인식하거나 상관하지 않습니다.The Hybrid Connections feature doesn't know or care what the application protocol is or what you're accessing. 네트워크 액세스만 제공합니다.It just provides network access.

자세한 내용은 하이브리드 연결 관련 App Service 설명서를 참조하세요.To learn more, see the App Service documentation for Hybrid Connections. 동일한 구성 단계는 Azure Functions를 지원합니다.These same configuration steps support Azure Functions.

중요

하이브리드 연결은 Windows 플랜에서만 지원됩니다.Hybrid Connections is only supported on Windows plans. Linux는 지원되지 않습니다.Linux isn't supported.

아웃바운드 IP 제한Outbound IP restrictions

아웃바운드 IP 제한은 프리미엄 계획, App Service 계획 또는 App Service Environment에서 사용할 수 있습니다.Outbound IP restrictions are available in a Premium plan, App Service plan, or App Service Environment. App Service Environment가 배포되는 가상 네트워크에 대한 아웃바운드 제한을 구성할 수 있습니다.You can configure outbound restrictions for the virtual network where your App Service Environment is deployed.

프리미엄 계획 또는 App Service 계획에서 함수 앱과 가상 네트워크를 통합하는 경우 앱에서 기본적으로 인터넷에 아웃바운드 호출을 수행할 수 있습니다.When you integrate a function app in a Premium plan or an App Service plan with a virtual network, the app can still make outbound calls to the internet by default. 애플리케이션 설정 WEBSITE_VNET_ROUTE_ALL=1을 추가하여 모든 아웃바운드 트래픽이 트래픽 제한에 네트워크 보안 그룹 규칙을 사용할 수 있는 가상 네트워크로 전송되도록 합니다.By adding the application setting WEBSITE_VNET_ROUTE_ALL=1, you force all outbound traffic to be sent into your virtual network, where network security group rules can be used to restrict traffic.

가상 네트워크를 사용하여 아웃바운드 IP를 제어하는 방법을 알아보려면 자습서: Azure 가상 네트워크 NAT 게이트웨이를 사용하여 Azure Functions 아웃바운드 IP 제어를 참조하세요.To learn how to control the outbound IP using a virtual network, see Tutorial: Control Azure Functions outbound IP with an Azure virtual network NAT gateway.

AutomationAutomation

다음 API를 사용하면 프로그래매틱 방식으로 지역 가상 네트워크 통합을 관리할 수 있습니다.The following APIs let you programmatically manage regional virtual network integrations:

  • Azure CLI: az functionapp vnet-integration 명령을 사용하여 지역 가상 네트워크 통합을 추가, 나열 또는 제거합니다.Azure CLI: Use the az functionapp vnet-integration commands to add, list, or remove a regional virtual network integration.
  • ARM 템플릿: 지역 가상 네트워크 통합은 Azure Resource Manager 템플릿을 사용하여 사용하도록 설정할 수 있습니다.ARM templates: Regional virtual network integration can be enabled by using an Azure Resource Manager template. 전체 예제를 보려면 이 함수 빠른 시작 템플릿을 참조하세요.For a full example, see this Functions quickstart template.

문제 해결Troubleshooting

이 기능은 쉽게 설정할 수 있지만 그렇다고 해서 환경에 문제가 발생하지 않는 것은 아닙니다.The feature is easy to set up, but that doesn't mean your experience will be problem free. 원하는 엔드포인트에 액세스하다가 문제가 발생하는 경우, 앱 콘솔에서 연결을 테스트하는 데 사용할 수 있는 유틸리티가 있습니다.If you encounter problems accessing your desired endpoint, there are some utilities you can use to test connectivity from the app console. 사용할 수 있는 두 개의 콘솔이 있습니다.There are two consoles that you can use. 하나는 Kudu 콘솔이고, 다른 하나는 Azure Portal의 콘솔입니다.One is the Kudu console, and the other is the console in the Azure portal. 앱에서 Kudu 콘솔에 연결하려면 도구 > Kudu 로 차례로 이동합니다.To reach the Kudu console from your app, go to Tools > Kudu. [sitename].scm.azurewebsites.net에서 Kudo 콘솔에 연결할 수도 있습니다.You can also reach the Kudo console at [sitename].scm.azurewebsites.net. 웹 사이트가 로드된 후 디버그 콘솔 탭으로 이동합니다. Azure Portal에서 호스트되는 콘솔에 연결하려면 앱에서 도구 > 콘솔 로 이동합니다.After the website loads, go to the Debug console tab. To get to the Azure portal-hosted console from your app, go to Tools > Console.

도구Tools

네이티브 Windows 앱에서 ping, nslookuptracert 도구는 보안 제약 조건으로 인해 콘솔을 통해 작동하지 않습니다(사용자 지정 Windows 컨테이너에서 작동).In native Windows apps, the tools ping, nslookup, and tracert won't work through the console because of security constraints (they work in custom Windows containers). 공백을 채우기 위해 별도의 두 가지 도구가 추가되었습니다.To fill the void, two separate tools are added. DNS 기능을 테스트하기 위해 nameresolver.exe 라는 도구가 추가되었습니다.To test DNS functionality, we added a tool named nameresolver.exe. 구문은 다음과 같습니다.The syntax is:

nameresolver.exe hostname [optional: DNS Server]

nameresolver를 사용하여 앱이 의존하는 호스트 이름을 확인합니다.You can use nameresolver to check the hostnames that your app depends on. 이렇게 하면 DNS에 잘못 구성된 항목이 있는지 또는 DNS 서버에 대한 액세스가 없는지 테스트할 수 있습니다.This way you can test if you have anything misconfigured with your DNS or perhaps don't have access to your DNS server. 환경 변수 WEBSITE_DNS_SERVER 및 WEBSITE_DNS_ALT_SERVER를 살펴보면 콘솔에서 앱이 사용하는 DNS 서버를 볼 수 있습니다.You can see the DNS server that your app uses in the console by looking at the environmental variables WEBSITE_DNS_SERVER and WEBSITE_DNS_ALT_SERVER.

참고

nameresolver.exe는 현재 사용자 지정 Windows 컨테이너에서 작동하지 않습니다.nameresolver.exe currently doesn't work in custom Windows containers.

다음 도구를 사용하여 호스트와 포트 조합에 대한 TCP 연결을 테스트할 수 있습니다.You can use the next tool to test for TCP connectivity to a host and port combination. 이 도구는 tcpping 이라고 하며, 구문은 다음과 같습니다.This tool is called tcpping and the syntax is:

tcpping.exe hostname [optional: port]

특정 호스트 및 포트에 연결할 수 있으면 tcpping 유틸리티에서 이를 알려줍니다.The tcpping utility tells you if you can reach a specific host and port. 호스트 및 포트 조합에서 수신 대기하는 애플리케이션이 있고 네트워크를 통해 앱에서 지정된 호스트 및 포트에 액세스할 수 있는 경우에만 성공으로 표시될 수 있습니다.It can show success only if there's an application listening at the host and port combination, and there's network access from your app to the specified host and port.

가상 네트워크에서 호스트되는 리소스에 대한 액세스 디버그Debug access to virtual network-hosted resources

특정 호스트와 포트에 앱이 도달하지 못하도록 방해할 만한 요소는 많이 있습니다.A number of things can prevent your app from reaching a specific host and port. 대부분의 경우 다음 중 하나입니다.Most of the time it's one of these things:

  • 중간에 방화벽이 있음.A firewall is in the way. 중간에 방화벽이 있으면 TCP 시간 제한에 도달합니다.If you have a firewall in the way, you hit the TCP timeout. 이 경우 TCP 시간 제한은 21초입니다.The TCP timeout is 21 seconds in this case. tcpping 도구를 사용하여 연결을 테스트합니다.Use the tcpping tool to test connectivity. 방화벽 뒤에 있는 많은 항목으로 인해 TCP 시간 초과가 발생할 수 있지만 이 부분에서 시작하세요.TCP timeouts can be caused by many things beyond firewalls, but start there.
  • DNS에 액세스할 수 없음.DNS isn't accessible. DNS 시간 제한은 DNS 서버당 3초입니다.The DNS timeout is 3 seconds per DNS server. DNS 서버가 2개 있으면 제한 시간은 6초입니다.If you have two DNS servers, the timeout is 6 seconds. DNS가 작동하는지 확인하려면 nameresolver를 사용합니다.Use nameresolver to see if DNS is working. nslookup은 가상 네트워크가 구성된 DNS를 사용하지 않으므로 사용할 수 없습니다.You can't use nslookup, because that doesn't use the DNS your virtual network is configured with. 액세스할 수 없는 경우 DNS에 대한 액세스를 차단하는 방화벽 또는 NSG가 있거나 DNS가 다운되었을 수 있습니다.If inaccessible, you could have a firewall or NSG blocking access to DNS or it could be down.

해당 항목이 문제에 응답하지 않는 경우 먼저 다음과 같은 사항을 확인합니다.If those items don't answer your problems, look first for things like:

지역 VNet 통합Regional VNet Integration

  • 대상이 RFC1918 주소가 아니고 WEBSITE_VNET_ROUTE_ALL이 1로 설정되어 있지 않나요?Is your destination a non-RFC1918 address and you don't have WEBSITE_VNET_ROUTE_ALL set to 1?
  • 통합 서브넷에서 송신을 차단하는 NSG가 있나요?Is there an NSG blocking egress from your integration subnet?
  • Azure ExpressRoute 또는 VPN을 통하는 경우 온-프레미스 게이트웨이가 Azure로 트래픽을 다시 라우팅하도록 구성되어 있나요?If you're going across Azure ExpressRoute or a VPN, is your on-premises gateway configured to route traffic back up to Azure? 가상 네트워크의 엔드포인트에 연결할 수 있지만 온-프레미스에는 연결할 수 없는 경우 경로를 확인하세요.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • 통합 서브넷에 대한 위임을 설정할 충분한 권한이 있나요?Do you have enough permissions to set delegation on the integration subnet? 지역 VNet 통합 구성 중에 통합 서브넷이 Microsoft.Web/serverFarms에 위임됩니다.During regional VNet Integration configuration, your integration subnet is delegated to Microsoft.Web/serverFarms. VNet 통합 UI는 서브넷을 Microsoft.Web/serverFarms에 자동으로 위임합니다.The VNet Integration UI delegates the subnet to Microsoft.Web/serverFarms automatically. 계정에 위임 설정을 위한 충분한 네트워킹 권한이 없는 경우 통합 서브넷에 특성을 설정하여 서브넷을 위임할 수 있는 사용자가 필요합니다.If your account doesn't have sufficient networking permissions to set delegation, you'll need someone who can set attributes on your integration subnet to delegate the subnet. 통합 서브넷을 수동으로 위임하려면 Azure Virtual Network 서브넷 UI로 이동하여 Microsoft.Web/serverFarms에 대한 위임을 설정합니다.To manually delegate the integration subnet, go to the Azure Virtual Network subnet UI and set the delegation for Microsoft.Web/serverFarms.

필수 게이트웨이 VNet 통합Gateway-required VNet Integration

  • 지점과 사이트 간 주소 범위가 RFC 1918 범위(10.0.0.0-10.255.255.255 / 172.16.0.0-172.31.255.255 / 192.168.0.0-192.168.255.255)에 있나요?Is the point-to-site address range in the RFC 1918 ranges (10.0.0.0-10.255.255.255 / 172.16.0.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
  • 게이트웨이가 포털에서 실행되고 있나요?Does the gateway show as being up in the portal? 게이트웨이가 다운되어 있으면 다시 가동시킵니다.If your gateway is down, then bring it back up.
  • 인증서가 동기화된 것으로 표시되거나 네트워크 구성이 변경된 것으로 의심되나요?Do certificates show as being in sync, or do you suspect that the network configuration was changed? 인증서가 동기화되지 않았거나 ASP와 동기화되지 않은 가상 네트워크 구성이 변경된 것으로 의심되는 경우 네트워크 동기화 를 선택합니다.If your certificates are out of sync or you suspect that a change was made to your virtual network configuration that wasn't synced with your ASPs, select Sync Network.
  • VPN을 통하는 경우 온-프레미스 게이트웨이가 Azure로 트래픽을 다시 라우팅하도록 구성되어 있나요?If you're going across a VPN, is the on-premises gateway configured to route traffic back up to Azure? 가상 네트워크의 엔드포인트에 연결할 수 있지만 온-프레미스에는 연결할 수 없는 경우 경로를 확인하세요.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • 지점과 사이트 간 및 ExpressRoute를 모두 지원하는 공존 게이트웨이를 사용하려고 하나요?Are you trying to use a coexistence gateway that supports both point to site and ExpressRoute? 공존 게이트웨이는 VNet 통합에서 지원되지 않습니다.Coexistence gateways aren't supported with VNet Integration.

특정 호스트:포트 조합에 대한 액세스를 차단하는 문제를 확인할 수 없기 때문에 네트워킹 문제를 디버깅하는 것은 어렵습니다.Debugging networking issues is a challenge because you can't see what's blocking access to a specific host:port combination. 몇 가지 원인은 다음과 같습니다.Some causes include:

  • 지점과 사이트 간 IP 범위에서 애플리케이션 포트에 대한 액세스를 차단하는 방화벽이 호스트에서 실행 중입니다.You have a firewall up on your host that prevents access to the application port from your point-to-site IP range. 보통 서브넷을 넘어갈 때는 공용 액세스 권한이 필요합니다.Crossing subnets often requires public access.
  • 대상 호스트가 다운되었습니다.Your target host is down.
  • 애플리케이션이 다운되었습니다.Your application is down.
  • IP 또는 호스트 이름이 잘못되었습니다.You had the wrong IP or hostname.
  • 애플리케이션이 예상치 않은 다른 포트를 수신 대기 중입니다.Your application is listening on a different port than what you expected. 엔드포인트 호스트에서 "netstat -aon"을 사용하여 프로세스 ID를 수신 대기 포트와 일치시킬 수 있습니다.You can match your process ID with the listening port by using "netstat -aon" on the endpoint host.
  • 네트워크 보안 그룹이 지점과 사이트 간 IP 범위에서 애플리케이션 호스트 및 포트에 대한 액세스를 차단하도록 구성되어 있습니다.Your network security groups are configured in such a manner that they prevent access to your application host and port from your point-to-site IP range.

앱이 실제로 사용하는 주소를 알 수 없습니다.You don't know what address your app actually uses. 통합 서브넷 또는 지점과 사이트 간 주소 범위의 주소일 수 있으므로 전체 주소 범위의 액세스를 허용해야 합니다.It could be any address in the integration subnet or point-to-site address range, so you need to allow access from the entire address range.

추가적인 디버그 단계에는 다음 내용이 포함됩니다.Additional debug steps include:

  • 가상 네트워크의 VM에 연결하고 이 위치에서 리소스 호스트:포트에 연결하려고 시도합니다.Connect to a VM in your virtual network and attempt to reach your resource host:port from there. TCP 액세스를 테스트하려면 test-netconnection PowerShell 명령을 사용합니다.To test for TCP access, use the PowerShell command test-netconnection. 구문은 다음과 같습니다.The syntax is:
test-netconnection hostname [optional: -Port]
  • VM에서 애플리케이션을 실행하고, tcpping 을 사용하여 앱에서 콘솔의 해당 호스트와 포트에 대한 액세스를 테스트합니다.Bring up an application on a VM and test access to that host and port from the console from your app by using tcpping.

온-프레미스 리소스On-premises resources

앱에서 온-프레미스 리소스에 연결할 수 없으면 가상 네트워크에서 리소스에 연결할 수 있는지 확인합니다.If your app can't reach a resource on-premises, check if you can reach the resource from your virtual network. test-netconnection PowerShell 명령을 사용하여 TCP 액세스를 확인합니다.Use the test-netconnection PowerShell command to check for TCP access. VM이 온-프레미스 리소스에 연결할 수 없는 경우 VPN 또는 ExpressRoute 연결이 제대로 구성되어 있지 않을 수 있습니다.If your VM can't reach your on-premises resource, your VPN or ExpressRoute connection might not be configured properly.

가상 네트워크에서 호스트되는 VM에서 온-프레미스 시스템에 연결할 수 있지만 앱에서는 연결할 수 없는 경우 다음과 같은 이유 중 하나 때문일 수 있습니다.If your virtual network-hosted VM can reach your on-premises system but your app can't, the cause is likely one of the following reasons:

  • 온-프레미스 게이트웨이의 서브넷 또는 지점과 사이트 간 주소 범위에 사용자의 경로가 구성되어 있지 않습니다.Your routes aren't configured with your subnet or point-to-site address ranges in your on-premises gateway.
  • 네트워크 보안 그룹에서 지점과 사이트 간 IP 범위에 대한 액세스를 차단하고 있습니다.Your network security groups are blocking access for your point-to-site IP range.
  • 온-프레미스 방화벽에서 지점과 사이트 간 IP 범위의 트래픽을 차단하고 있습니다.Your on-premises firewalls are blocking traffic from your point-to-site IP range.
  • 지역 VNet 통합 기능을 사용하여 비 RFC 1918 주소에 연결하려고 합니다.You're trying to reach a non-RFC 1918 address by using the regional VNet Integration feature.

다음 단계Next steps

네트워킹 및 Azure Functions에 대한 자세한 내용은 다음을 확인하세요.To learn more about networking and Azure Functions: