アプリを Azure 仮想ネットワークに統合するIntegrate your app with an Azure Virtual Network

このドキュメントでは、Azure App Service の仮想ネットワーク統合機能と、それを Azure App Service のアプリで設定する方法について説明します。This document describes the Azure App Service virtual network integration feature and how to set it up with apps in the Azure App Service. Azure Virtual Network (VNet) を使用すると、多くの Azure リソースをインターネットでルーティングできないネットワークに配置できます。Azure Virtual Networks (VNets) allow you to place many of your Azure resources in a non-internet routable network.

Azure App Service には、次の 2 つのバリエーションがあります。The Azure App Service has two variations.

  1. Isolated を除くすべての価格プランをサポートするマルチテナント システムThe multi-tenant systems that support the full range of pricing plans except Isolated
  2. VNet にデプロイされ、Isolated 価格プランのアプリをサポートする App Service Environment (ASE)The App Service Environment (ASE), which deploys into your VNet and supports Isolated pricing plan apps

このドキュメントでは、マルチテナント App Service で使用される 2 つの VNet 統合機能について説明します。This document goes through the two VNet Integration features, which is for use in the multi-tenant App Service. アプリが 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 のすべてのネットワーク機能の詳細については、App Service のネットワーク機能に関するページを参照してください。For details on all of the App Service networking features, read App Service networking features

VNet 統合機能には、次の 2 つの形式があります。There are two forms to the VNet Integration feature

  1. 1 つのバージョンでは、同じリージョン内の VNet との統合を有効にします。One version enables integration with VNets in the same region. この形式の機能では、同じリージョン内の VNet 内にサブネットが必要です。This form of the feature requires a subnet in a VNet in the same region. この機能はまだプレビュー段階ですが、Windows アプリケーションの運用環境ワークロードではサポートされており、以下に注意点がいくつかあります。This feature is still in preview but is supported for Windows app production workloads with some caveats noted below.
  2. もう 1 つのバージョンでは、他のリージョン内の VNet またはクラシック VNet との統合を有効にします。The other version enables integration with VNets in other regions or with Classic VNets. このバージョンの機能では、VNet への Virtual Network ゲートウェイのデプロイが必要です。This version of the feature requires deployment of a Virtual Network Gateway into your VNet. これはポイント対サイト VPN ベースの機能であり、Windows アプリでのみサポートされています。This is the point-to-site VPN-based feature and is only supported with Windows apps.

アプリが同時に使用できる VNet 統合機能の形式は 1 つだけです。An app can only use one form of the VNet Integration feature at a time. そのため、どちらの機能を使用すべきかが問題になります。The question then is which feature should you use. これらはどちらも多くの目的に使用できます。You can use either for many things. ただし、明確な差別化要素を次に示します。The clear differentiators though are:

問題点Problem 解決策Solution
同じリージョン内の RFC 1918 アドレス (10.0.0.0/8、172.16.0.0/12、192.168.0.0/16) に到達する必要があるWant to reach an RFC 1918 address (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) in the same region リージョン Vnet 統合regional VNet Integration
クラシック VNet または別のリージョン内の VNet にあるリソースに到達する必要があるWant to reach resources in a Classic VNet or a VNet in another region ゲートウェイが必要な Vnet 統合gateway required VNet Integration
ExpressRoute にまたがる RFC 1918 エンドポイントに到達する必要があるWant to reach RFC 1918 endpoints across ExpressRoute リージョン Vnet 統合regional VNet Integration
サービス エンドポイントにまたがるリソースに到達する必要があるWant to reach resources across service endpoints リージョン Vnet 統合regional VNet Integration

どちらの機能を使用しても、ExpressRoute にまたがる RFC 1918 以外のアドレスに到達することはできません。Neither feature will enable you to reach non-RFC 1918 addresses across ExpressRoute. それを行うには、今のところ ASE を使用する必要があります。To do that you need to use an ASE for now.

リージョン Vnet 統合を使用しても、VNet がオンプレミスに接続されたり、サービス エンドポイントが構成されたりはしません。Using the regional VNet Integration does not connect your VNet to on-premises or configure service endpoints. それは別のネットワーク構成です。That is separate networking configuration. リージョン Vnet 統合は単純に、アプリがこれらの接続の種類をまたがって呼び出しを行うことができるようにします。The regional VNet Integration simply enables your app to make calls across those connection types.

使用されているバージョンには関係なく、Vnet 統合は Web アプリに仮想ネットワーク内のリソースへのアクセス権を付与しますが、仮想ネットワークから Web アプリへの受信プライベート アクセス権は付与しません。Regardless of the version used, VNet Integration gives your web app access to resources in your virtual network but doesn't grant inbound private access to your web app from the virtual network. プライベート サイト アクセスとは、Azure 仮想ネットワークなどプライベート ネットワークのみからアプリにアクセスできるようにすることです。Private site access refers to making your app only accessible from a private network such as from within an Azure virtual network. Vnet 統合は、アプリから VNet への送信呼び出しを行うためにのみ存在します。VNet Integration is only for making outbound calls from your app into your VNet.

以下は、VNet 統合機能の特徴です。The VNet Integration feature:

  • Standard、Premium、PremiumV2 いずれかの価格プランが必要requires a Standard, Premium, or PremiumV2 pricing plan
  • TCP と UDP をサポートsupports TCP and UDP
  • App Service アプリや関数アプリで動作可能works with App Service apps, and Function apps

以下に、VNet 統合でサポートされていないことの例を示します。There are some things that VNet Integration doesn't support including:

  • ドライブのマウントmounting a drive
  • AD 統合AD integration
  • NetBIOSNetBios

リージョン VNet 統合Regional VNet Integration

注意

ピアリングは、Linux ベースの App Service ではまだ使用できません。Peering is not yet available for Linux based App Service.

Vnet 統合がアプリと同じリージョン内の VNet で使用される場合は、少なくとも 32 個のアドレスを含む委任されたサブネットを使用する必要があります。When VNet Integration is used with VNets in the same region as your app, it requires the use of a delegated subnet with at least 32 addresses in it. このサブネットは他のどの目的にも使用できません。The subnet cannot be used for anything else. アプリから行われる送信呼び出しは、委任されたサブネット内のアドレスから行われます。Outbound calls made from your app will be made from the addresses in the delegated subnet. このバージョンの Vnet 統合を使用する場合、呼び出しは VNet 内のアドレスから行われます。When you use this version of VNet Integration, the calls are made from addresses in your VNet. VNet 内のアドレスを使用すると、アプリは次のことが可能になります。Using addresses in your VNet enables your app to:

  • サービス エンドポイントでセキュリティ保護されたサービスへの呼び出しを行うMake calls to service endpoint secured services
  • ExpressRoute 接続にまたがるリソースにアクセスするAccess resources across ExpressRoute connections
  • 接続されている VNet 内のリソースにアクセスするAccess resources in the VNet you are connected to
  • ExpressRoute 接続を含むピアリングされた接続にまたがるリソースにアクセスするAccess resources across peered connections including ExpressRoute connections

この機能はプレビュー段階にありますが、次の制限付きで、Windows アプリの運用ワークロードに対してサポートされます。This feature is in preview but, it is supported for Windows app production workloads with the following limitations:

  • RFC 1918 の範囲にあるアドレスにのみ到達できます。You can only reach addresses that are in the RFC 1918 range. これらは、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 アドレス ブロック内のアドレスです。Those are addresses in the 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 address blocks.
  • グローバル ピアリング接続にまたがるリソースには到達できません。You cannot reach resources across global peering connections
  • アプリから VNet に来るトラフィックに関するルートは設定できません。You cannot set routes on the traffic coming from your app into your VNet
  • この機能は、PremiumV2 の App Service プランをサポートする新しい App Service スケール ユニットからのみ使用できます。The feature is only available from newer App Service scale units that support PremiumV2 App Service plans.
  • 統合サブネットは、1 つの App Service プランでしか使用できません。The integration subnet can only be used by only one App Service plan
  • この機能は、App Service Environment にある Isolated プランのアプリでは使用できません。The feature cannot be used by Isolated plan apps that are in an App Service Environment
  • この機能では、Resource Manager VNet 内に 32 個以上のアドレスを含む /27 である未使用のサブネットが必要です。The feature requires an unused subnet that is a /27 with 32 addresses or larger in your Resource Manager VNet
  • アプリと VNet は同じリージョンに存在する必要があります。The app and the VNet must be in the same region
  • 統合アプリで VNet を削除することはできません。You cannot delete a VNet with an integrated app. まず、その統合を削除する必要があります。You must remove the integration first
  • App Service プランごとに 1 リージョンの VNet 統合のみを持つことができます。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 統合を使用しているアプリがあるときに、アプリまたは App Service プランのサブスクリプションを変更することはできませんYou cannot change the subscription of an app or an App Service plan while there is an app that is using Regional VNet Integration

App Service プランのインスタンスごとに 1 つのアドレスが使用されます。One address is used for each App Service plan instance. アプリを 5 つのインスタンスにスケーリングした場合は、アドレスが 5 つ使用されます。If you scaled your app to 5 instances, then 5 addresses are used. 割り当てた後はサブネット サイズを変更できないため、アプリが到達する可能性のあるスケールに対応できるだけの十分な大きさを持つサブネットを使用する必要があります。Since subnet size cannot be changed after assignment, you must use a subnet that is large enough to accommodate whatever scale your app may reach. 推奨されるサイズは、64 のアドレスを持つ /26 です。A /26 with 64 addresses is the recommended size. App Service プランのサイズを変更していない場合、32 のアドレスを持つ /27 は Premium App Service プランの 20 個のインスタンスに対応します。A /27 with 32 addresses would accommodate a Premium App Service plan 20 instances if you didn't change the size of the App Service plan. App Service プランをスケールアップまたはスケールダウンする場合は、短時間に 2 倍の数のアドレスが必要になります。When you scale an App Service plan up or down, you need twice as many addresses for a short period of time.

別の App Service プランのアプリで、別の App Service プランのアプリから既に接続されている VNet に到達するようにしたい場合は、既存の VNet 統合によって使用されているものとは異なるサブネットを選択する必要があります。If you want your apps in another App Service plan to reach a VNet that is connected to already by apps in another App Service plan, you need to select a different subnet than the one being used by the pre-existing VNet Integration.

この機能は Linux でもプレビュー段階です。The feature is in preview also for Linux. 同じリージョン内の Resource Manager VNet で VNet 統合機能を使用するには:To use the VNet Integration feature with a Resource Manager VNet in the same region:

  1. ポータルで [ネットワーク] の UI に移動します。Go to the Networking UI in the portal. アプリが新機能を使用できる場合は、[VNet の追加 (プレビュー)] オプションが表示されます。If your app is able to use the new feature, then you will see an option to Add VNet (preview).

    Vnet 統合を選択する

  2. [Add VNet (preview)](VNet の追加 (プレビュー)) を選択します。Select Add VNet (preview).

  3. 統合の対象にする Resource Manager VNet を選択し、新しいサブネットを作成するか、空の既存のサブネットを選択します。Select the Resource Manager VNet that you want to integrate with and then either create a new subnet or pick an empty pre-existing subnet. 統合は 1 分未満で完了します。The integration takes less than a minute to complete. 統合中にアプリは再起動されます。During the integration, your app is restarted. 統合が完了すると、統合対象の VNet に関する詳細と、この機能はプレビュー段階にあることを通らせる上部のバナーが表示されます。When integration is completed, you will see details on the VNet you are integrated with and a banner at the top that tells you the feature is in preview.

    VNet とサブネットを選択する

アプリが VNet に統合されると、そのアプリは VNet が構成されているのと同じ DNS サーバーを使用します。Once your app is integrated with your VNet, it will use the same DNS server that your VNet is configured with.

リージョン VNet 統合では、統合サブネットが Microsoft.Web に委任されている必要があります。Regional VNet Integration requires your integration subnet to be delegated to Microsoft.Web. VNet 統合 UI では、Microsoft Web に対するサブネットが自動的に委任されます。The VNet Integration UI will delegate the subnet to Microsoft.Web automatically. アカウントにこれを設定するための十分なネットワークのアクセス許可がない場合は、サブネットを委任するために、統合サブネットに属性を設定できるユーザーが必要になります。If your account does not have sufficient networking permissions to set this, you will need someone who can set attributes on your integration subnet to do delegate the subnet. 統合サブネットを手動で委任するには、Azure Virtual Network サブネット UI にアクセスして、Microsoft.Web の委任を設定します。To manually delegate the integration subnet, go to the Azure Virtual Network subnet UI and set delegation for Microsoft.Web.

VNet からアプリを切断するには、 [切断] を選択します。To disconnect your app from the VNet, select Disconnect. これにより、Web アプリが再起動されます。This will restart your web app.

Web App for ContainersWeb App for Containers

Linux 上の App Service を組み込みイメージで使用する場合、リージョンの VNet 統合機能は追加の変更なしで機能します。If you use App Service on Linux with the built-in images, the regional VNet Integration feature works without additional changes. Web App for Containers を使用している場合は、VNet 統合を使用するために docker イメージを変更する必要があります。If you use Web App for Containers, you need to modify your docker image in order to use VNet Integration. docker イメージで、ハードコーディングされたポート番号を使用するのではなく、メイン Web サーバーのリスニング ポートとして PORT 環境変数を使用します。In your docker image, use the PORT environment variable as the main web server’s listening port, instead of using a hardcoded port number. PORT 環境変数は、コンテナーの起動時に App Service プラットフォームによって自動的に設定されます。The PORT environment variable is automatically set by App Service platform at the container startup time. SSH を使用している場合は、リージョン VNet 統合を使用するときに SSH_PORT 環境変数で指定されたポート番号でリッスンするように SSH デーモンを構成する必要があります。If you are using SSH, then the SSH daemon must be configured to listen on the port number specified by the SSH_PORT environment variable when using regional VNet integration.

サービス エンドポイントService Endpoints

新しい VNet 統合機能では、サービス エンドポイントを使用できます。The new VNet Integration feature enables you to use service endpoints. アプリでサービス エンドポイントを使用するには、新しい VNet 統合を使用し、選択した VNet に接続してから、統合に使用したサブネット上のサービス エンドポイントを構成します。To use service endpoints with your app, use the new VNet Integration to connect to a selected VNet and then configure service endpoints on the subnet you used for the integration.

VNet 統合の動作How VNet Integration works

App Service 内のアプリは、worker ロールでホストされます。Apps in the App Service are hosted on worker roles. Basic 以上の価格プランは、同じワーカー上で他の顧客のワークロードが実行されていない専用のホスティング プランです。The Basic and higher pricing plans are dedicated hosting plans where there are no other customers workloads running on the same workers. Vnet 統合は、委任されたサブネット内のアドレスで仮想インターフェイスをマウントすることによって機能します。VNet Integration works by mounting virtual interfaces with addresses in the delegated subnet. 送信元アドレスは VNet 内に存在するため、VNet 内の VM と同様に、VNet 内または VNet 経由でほとんどの場所にアクセスできます。Because the from address is in your VNet, it has access to most things in or through your VNet just like a VM in your VNet would. ネットワークの実装は VNet 内の VM の実行とは異なるため、この機能の使用中に、一部のネットワーク機能はまだ使用できません。The networking implementation is different than running a VM in your VNet and that is why some networking features are not yet available while using this feature.

VNet 統合

Vnet 統合が有効になっても、アプリは引き続き、通常と同じチャネル経由でインターネットへの送信呼び出しを行います。When VNet Integration is enabled, your app will still make outbound calls to the internet through the same channels as normal. アプリのプロパティ ポータルに一覧表示される送信アドレスは引き続き、そのアプリによって使用されるアドレスです。The outbound addresses that are listed in the app properties portal are still the addresses used by your app. アプリに関する変更は、サービス エンドポイントでセキュリティ保護されたサービスまたは RFC 1918 アドレスへの呼び出しが VNet に転送されることです。What changes for your app are, calls to service endpoint secured services or RFC 1918 addresses goes into your VNet.

この機能は、ワーカーあたり 1 つの仮想インターフェイスのみをサポートします。The feature only supports one virtual interface per worker. worker あたり 1 つの仮想インターフェイスは、App Service プランごとに 1 リージョンの VNet 統合があることを意味します。One virtual interface per worker means one regional VNet Integration per App Service plan. 同じ App Service プラン内のすべてのアプリが同じ Vnet 統合を使用できますが、アプリで追加の VNet に接続する必要がある場合は、別の App Service プランを作成する必要があります。All of the apps in the same App Service plan can use the same VNet Integration but if you need an app to connect to an additional VNet, you will need to create another App Service plan. 使用される仮想インターフェイスは、顧客が直接アクセスできるリソースではありません。The virtual interface used is not a resource that customers have direct access to.

このテクノロジが動作する方法の性質のために、Vnet 統合で使用されるトラフィックは Network Watcher や NSG フロー ログには表示されません。Due to the nature of how this technology operates, the traffic that is used with VNet Integration does not show up in Network Watcher or NSG flow logs.

ゲートウェイが必要な Vnet 統合Gateway required VNet Integration

ゲートウェイが必要な Vnet 統合機能の特徴は次のとおりです。The Gateway required VNet Integration feature:

  • Resource Manager またはクラシック VNet である場合は、任意のリージョン内の VNet に接続するために使用できますCan be used to connect to VNets in any region be they Resource Manager or Classic VNets
  • アプリは、一度に 1 つの VNet にのみ接続できますEnables an app to connect to only 1 VNet at a time
  • App Service プランでは、最大 5 つの VNet と統合できますEnables up to five VNets to be integrated with in an App Service Plan
  • App Service プランで使用できる総数に影響を与えることなく、App Service プラン内の複数のアプリで同じ VNet を使用できます。Allows the same VNet to be used by multiple apps in an App Service Plan without impacting the total number that can be used by an App Service plan. 同じ App Service プラン内の同じ VNet を使用しているアプリが 6 つある場合、使用されている VNet は 1 つとしてカウントされます。If you have 6 apps using the same VNet in the same App Service plan, that counts as 1 VNet being used.
  • ポイント対サイト VPN を使用して構成されている Virtual Network ゲートウェイが必要ですRequires a Virtual Network Gateway that is configured with Point to Site VPN
  • ゲートウェイに対する SLA により、99.9% の SLA をサポートしますSupports a 99.9% SLA due to the SLA on the gateway

この機能は、次のことをサポートしていません。This feature does not support:

  • Linux アプリでの使用Use with Linux apps
  • ExpressRoute を越えてのリソースへのアクセスAccessing resources across ExpressRoute
  • サービス エンドポイントを越えてのリソースへのアクセスAccessing resources across Service Endpoints

使用の開始Getting started

ここでは、Web アプリを仮想ネットワークに接続する前に考慮する必要がある点について説明します。Here are some things to keep in mind before connecting your web app to a virtual network:

  • ターゲットの仮想ネットワークでは、アプリに接続するために、ルート ベースのゲートウェイによるポイント対サイト VPN が有効になっている必要があります。A target virtual network must have point-to-site VPN enabled with a route-based gateway before it can be connected to app.
  • VNet は、App Service プラン (ASP) と同じサブスクリプションにする必要があります。The VNet must be in the same subscription as your App Service Plan(ASP).
  • VNet と統合されるアプリケーションでは、その VNet に対して指定されている DNS を使用します。The apps that integrate with a VNet use the DNS that is specified for that VNet.

VNet 内にゲートウェイを設定するSet up a gateway in your VNet

ポイント対サイトのアドレスを使用して構成されているゲートウェイが既にある場合は、VNet 統合とアプリとの構成を省略できます。If you already have a gateway configured with point-to-site addresses, you can skip to configuring VNet Integration with your app.
ゲートウェイを作成するには:To create a gateway:

  1. VNet 内にゲートウェイ サブネットを作成します。Create a gateway subnet in your VNet.

  2. VPN ゲートウェイを作成します。Create the VPN gateway. VPN の種類はルート ベースを選択します。Select a route-based VPN type.

  3. ポイント対サイト アドレスを設定します。Set the point to site addresses. ゲートウェイが Basic SKU 内にない場合は、ポイント対サイトの構成で IKEV2 を無効にする必要があり、SSTP を選択する必要があります。If the gateway isn't in the basic SKU, then IKEV2 must be disabled in the point-to-site configuration and SSTP must be selected. アドレス空間は、RFC 1918 アドレス ブロック 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 内に存在する必要があります。The address space must be in the RFC 1918 address blocks, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16

App Service の VNet 統合で使用するゲートウェイを作成しているだけの場合は、証明書をアップロードする必要はありません。If you are just creating the gateway for use with App Service VNet Integration, then you do not need to upload a certificate. ゲートウェイの作成には 30 分かかることがあります。Creating the gateway can take 30 minutes. ゲートウェイがプロビジョニングされるまで、アプリを VNet に統合することはできません。You will not be able to integrate your app with your VNet until the gateway is provisioned.

アプリで VNet 統合を構成するConfigure VNet Integration with your app

アプリで VNet 統合を有効にするには:To enable VNet Integration on your app:

  1. Azure portal で目的のアプリに移動し、アプリの設定を開いて [ネットワーク] > [VNet 統合] と選択します。Go to your app in the Azure portal and open app settings and select Networking > VNet Integration. どちらかの VNet 統合機能を使用するには、ASP が Standard SKU 以上に属している必要があります。Your ASP must be in a Standard SKU or better to use either VNet Integration feature. [VNet 統合] UIVNet Integration UI

  2. [Add VNet](VNet の追加) を選択します。Select Add VNet. VNet 統合を追加するAdd VNet Integration

  3. 目的の VNet を選択します。Select your VNet. 目的の VNet を選択するSelect your VNet

この最後の手順の後にアプリが再起動されます。Your app will be restarted after this last step.

ゲートウェイが必要な Vnet 統合機能の動作How the gateway required VNet Integration feature works

ゲートウェイが必要な Vnet 統合機能は、ポイント対サイト VPN テクノロジに基づいて構築されています。The gateway required VNet Integration feature is built on top of point-to-site VPN technology. ポイント対サイト テクノロジによって、ネットワーク アクセスを、アプリをホストしている仮想マシンのみに制限しています。The point-to-site technology limits network access to just the virtual machine hosting the app. アプリは、ハイブリッド接続または VNet 統合を通してのみ、インターネットにトラフィックを送信するように制限されています。Apps are restricted to only send traffic out to the internet, through Hybrid Connections or through VNet Integration.

VNet 統合の動作

Vnet 統合の管理Managing VNet Integration

VNet への接続と、VNet との接続の切断は、アプリ レベルの機能です。The ability to connect and disconnect to a VNet is at an app level. 複数のアプリをまたいで VNet 統合に影響する可能性がある操作は、App Service プラン レベルで行われます。Operations that can affect the VNet Integration across multiple apps are at the App Service plan level. アプリ > [ネットワーク] > [Vnet 統合] ポータルから、VNet に関する詳細を取得できます。From the app > Networking > VNet Integration portal, you can get details on your VNet. 特定の統合をその App Service プラン内のどのアプリが使用しているかを含め、同様の情報は ASP > [ネットワーク] > [Vnet 統合] ポータルの ASP レベルで確認できます。You can see similar information at the ASP level in the ASP > Networking > VNet Integration portal including what apps in that App Service plan are using a given integration.

VNet の詳細

Vnet 統合 UI で取得できる情報は、アプリと ASP ポータルの間で同じです。The information you have available to you in the VNet Integration UI is the same between the app and ASP portals.

  • VNet 名 - 仮想ネットワーク UI へのリンクVNet Name - links to the virtual network UI
  • 場所 - VNet の場所が表示されます。Location - reflects the location of your VNet. 別の場所にある VNet と統合すると、アプリの待機時間の問題が発生する可能性があります。Integrating with a VNet in another location can cause latency issues for your app.
  • 証明書の状態 - 証明書が App Service プランと VNet の間で同期しているかどうかが表示されます。Certificate Status - reflects if your certificates are in sync between your App Service plan and your VNet.
  • ゲートウェイの状態 - ゲートウェイが必要な Vnet 統合を使用している場合は、ゲートウェイの状態を確認できます。Gateway Status - Should you be using the gateway required VNet Integration, you can see the gateway status.
  • VNet アドレス空間 - VNet の IP アドレス空間が表示されます。VNet address space - shows the IP address space for your VNet.
  • ポイント対サイト アドレス空間 - VNet のポイント対サイト IP アドレス空間が表示されます。Point-to-site address space - shows the point to site IP address space for your VNet. ゲートウェイが必要な機能の使用中に VNet への呼び出しを行うと、アプリの送信元アドレスはこれらのアドレスのいずれかになります。When making calls into your VNet while using the gateway required feature, your app FROM address will be one of these addresses.
  • サイト対サイト アドレス空間 - サイト間 VPN を使用して、VNet をオンプレミスのリソースまたは他の VNet に接続できます。Site-to-site address space - You can use site-to-site VPNs to connect your VNet to your on-premises resources or to other VNet. その VPN 接続を使って定義されている IP 範囲は、ここに表示されます。The IP ranges defined with that VPN connection are shown here.
  • DNS サーバー - ユーザーの VNet で構成されている DNS サーバーが表示されます。DNS Servers - shows the DNS Servers configured with your VNet.
  • VNet にルーティングされる IP アドレス - VNet にトラフィックを誘導するためにルーティングされるアドレス ブロックが表示されますIP addresses routed to the VNet - shows the address blocks routed used to drive traffic into your VNet

VNet 統合のアプリ ビューで実行できる操作は、現在接続されている VNet からアプリを切断する操作のみです。The only operation you can take in the app view of your VNet Integration is to disconnect your app from the VNet it is currently connected to. VNet からアプリを切断するには、 [切断] を選択します。To disconnect your app from a VNet, select Disconnect. VNet から切断すると、アプリは再起動されます。Your app will be restarted when you disconnect from a VNet. 切断によって VNet に変更は生じません。Disconnecting doesn't change your VNet. サブネットやゲートウェイは削除されません。The subnet or gateway is not removed. その後で VNet を削除する場合は、まず VNet からアプリを切断し、ゲートウェイなどのそこに含まれているリソースを削除する必要があります。If you then want to delete your VNet, you need to first disconnect your app from the VNet and delete the resources in it such as gateways.

ASP VNet 統合 UI にアクセスするには、ASP UI を開き、 [ネットワーク] を選択します。To reach the ASP VNet Integration UI, open your ASP UI and select Networking. [VNet 統合] で、 [Click here to configure](ここをクリックして構成) を選択し、ネットワーク機能の状態 UI を開きます。Under VNet Integration, select Click here to configure to open the Network Feature Status UI.

ASP VNet 統合の情報

ASP VNet 統合 UI には、ASP でアプリが使用しているすべての VNet が表示されます。The ASP VNet Integration UI will show you all of the VNets that are used by the apps in your ASP. 各 VNet の詳細を表示するには、目的の VNet をクリックします。To see details on each VNet, click on the VNet you are interested in. ここでは 2 つの操作を実行できます。There are two actions you can perform here.

  • ネットワークを同期するSync network. ネットワーク同期操作は、ゲートウェイに依存する VNet 統合機能のためにのみ存在します。The sync network operation is only for the gateway-dependent VNet Integration feature. ネットワーク同期操作を実行すると、証明書とネットワークの情報が確実に同期されるようになります。VNet の DNS を変更する場合は、ネットワークの同期操作を実行する必要があります。Performing a sync network operation ensures that your certificates and network information are in sync. If you add or change the DNS of your VNet, you need to perform a Sync network operation. この操作によって、この VNet を使用しているすべてのアプリが再起動されます。This operation will restart any apps using this VNet.
  • ルートを追加する ルートを追加すると、送信トラフィックが VNet に誘導されます。Add routes Adding routes will drive outbound traffic into your VNet.

ルーティング VNet に定義されたルートは、アプリから VNet にトラフィックを転送するために使用されます。Routing The routes that are defined in your VNet are used to direct traffic into your VNet from your app. VNet に追加の送信トラフィックを送信する必要がある場合は、ここでそれらのアドレス ブロックを追加できます。If you need to send additional outbound traffic into the VNet, then you can add those address blocks here. この機能は、ゲートウェイが必要な Vnet 統合でのみ動作します。This capability only works with gateway required VNet Integration.

証明書 ゲートウェイが必要な Vnet 統合が有効になっている場合は、接続のセキュリティを確保するために証明書の交換が必要です。Certificates When the gateway required VNet Integration enabled, there is a required exchange of certificates to ensure the security of the connection. 証明書と共に、DNS の構成、ルート、ネットワークについて記述するその他の同様の情報があります。Along with the certificates are the DNS configuration, routes, and other similar things that describe the network. 証明書またはネットワーク情報が変更された場合は、[ネットワークの同期] をクリックする必要があります。If certificates or network information is changed, you need to click "Sync Network". [ネットワークの同期] をクリックすると、アプリと VNet の間の接続が短時間途切れます。When you click "Sync Network", you cause a brief outage in connectivity between your app and your VNet. アプリが再起動されていない間は、接続の途切れによって、サイトが正常に機能しなくなる可能性があります。While your app isn't restarted, the loss of connectivity could cause your site to not function properly.

オンプレミスのリソースへのアクセスAccessing on-premises resources

アプリは、サイト間接続がある Vnet と統合することで、オンプレミスのリソースにアクセスできます。Apps can access on-premises resources by integrating with VNets that have site-to-site connections. ゲートウェイが必要な Vnet 統合を使用している場合は、ポイント対サイト アドレス ブロックでオンプレミスの VPN ゲートウェイのルートを更新する必要があります。If you are using the gateway required VNet Integration, you need to update your on-premises VPN gateway routes with your point-to-site address blocks. サイト間 VPN が初めてセットアップされるときには、その構成に使用するスクリプトによって、ルートが正しくセットアップされるはずです。When the site-to-site VPN is first set up, the scripts used to configure it should set up routes properly. サイト間 VPN を作成した後にポイント対サイト アドレスを追加する場合は、ルートを手動で更新する必要があります。If you add the point-to-site addresses after you create your site-to-site VPN, you need to update the routes manually. その詳しい手順はゲートウェイごとに異なるため、ここでは取り上げません。Details on how to do that vary per gateway and are not described here. BGP をサイト間 VPN 接続で構成することはできません。You cannot have BGP configured with a site-to-site VPN connection.

VNet 経由でオンプレミスに到達するために、リージョン Vnet 統合機能に追加の構成は必要ありません。There is no additional configuration required for the regional VNet Integration feature to reach through your VNet, and to on-premises. 必要なのは、単に ExpressRoute またはサイト間 VPN を使用して VNet をオンプレミスに接続することだけです。You simply need to connect your VNet to on-premises using ExpressRoute or a site-to-site VPN.

注意

ゲートウェイが必要な Vnet 統合機能では、アプリは ExpressRoute ゲートウェイを含む VNet とは統合されません。The gateway required VNet Integration feature doesn't integrate an app with a VNet that has an ExpressRoute Gateway. ExpressRoute ゲートウェイが共存モードで構成されている場合であっても、VNet 統合は機能しません。Even if the ExpressRoute Gateway is configured in coexistence mode the VNet Integration doesn't work. ExpressRoute 接続経由でリソースにアクセスする必要がある場合は、VNet で実行されるリージョン VNet 統合機能または App Service Environment を使用できます。If you need to access resources through an ExpressRoute connection, then you can use the regional VNet Integration feature or an App Service Environment, which runs in your VNet.

ピアリングPeering

リージョン Vnet 統合でピアリングを使用している場合、追加の構成を行う必要はありません。If you are using peering with the regional VNet Integration, you do not need to do any additional configuration.

ゲートウェイが必要な Vnet 統合でピアリングを使用している場合は、いくつかの追加の項目を構成する必要があります。If you are using the gateway required VNet Integration with peering, you need to configure a few additional items. アプリで動作するようにピアリングを構成するには:To configure peering to work with your app:

  1. アプリの接続先の VNet でピアリング接続を追加します。Add a peering connection on the VNet your app connects to. ピアリング接続の追加時には、 [仮想ネットワークアクセスを許可する] を有効にして、 [転送されたトラフィックを許可する] チェック ボックスと [ゲートウェイ転送を許可する] チェック ボックスをオンにします。When adding the peering connection, enable Allow virtual network access and check Allow forwarded traffic and Allow gateway transit.
  2. 接続先の Vnet にピアリングされている VNet でピアリング接続を追加します。Add a peering connection on the VNet that is being peered to the VNet you are connected to. 対象の VNet でピアリング接続を追加するときには、 [仮想ネットワークアクセスを許可する] を有効にして、 [転送されたトラフィックを許可する] チェック ボックスと [Allow remote gateways](リモート ゲートウェイを許可する) チェック ボックスをオンにします。When adding the peering connection on the destination VNet, enable Allow virtual network access and check Allow forwarded traffic and Allow remote gateways.
  3. ポータルで [App Service プラン] > [ネットワーク] > VNet 統合 UI と移動します。Go to the App Service plan > Networking > VNet Integration UI in the portal. アプリの接続先 VNet を選択します。Select the VNet your app connects to. ルーティングのセクションで、アプリの接続先 VNet とピアリングされている VNet のアドレス範囲を追加します。Under the routing section, add the address range of the VNet that is peered with the VNet your app is connected to.

価格の詳細Pricing details

リージョン Vnet 統合機能には、ASP の価格レベルの料金を超える追加の使用料金はありません。The regional VNet Integration feature has no additional charge for use beyond the ASP pricing tier charges.

ゲートウェイが必要な Vnet 統合機能の使用に関連する料金には、次の 3 つがあります。There are three related charges to the use of the gateway required VNet Integration feature:

  • ASP の価格レベルの料金 - アプリは Standard、Premium、または PremiumV2 の App Service プランに属している必要があります。ASP pricing tier charges - Your apps need to be in a Standard, Premium, or PremiumV2 App Service Plan. これらのコストの詳細については、「App Service の価格」を参照してください。You can see more details on those costs here: App Service Pricing.
  • データ転送のコスト - VNet が同じデータ センター内に存在する場合でも、データ エグレスの料金が発生します。Data transfer costs - There is a charge for data egress, even if the VNet is in the same data center. これらの料金は、「帯域幅の料金詳細」で説明されています。Those charges are described in Data Transfer Pricing Details.
  • VPN Gateway のコスト - ポイント対サイト VPN に必要な VNet ゲートウェイに対してコストが発生します。VPN Gateway costs - There is a cost to the VNet gateway that is required for the point-to-site VPN. これらの詳細は、「VPN Gateway の価格」のページに記載されています。The details are on the VPN Gateway Pricing page.

トラブルシューティングTroubleshooting

この機能は簡単にセットアップできるものの、問題が発生しないわけではありません。While the feature is easy to set up, that doesn't mean that your experience will be problem free. 目的のエンドポイントへのアクセスに関して問題が発生した場合は、アプリのコンソールからの接続テストに、いくつかのユーティリティを利用できます。Should you encounter problems accessing your desired endpoint there are some utilities you can use to test connectivity from the app console. 利用できるコンソールが 2 つあります。There are two consoles that you can use. 1 つは Kudu コンソールで、もう 1 つは 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. [サイト名].scm.azurewebsites.net で Kudo コンソールにアクセスすることもできます。You can also reach the Kudo console at [sitename].scm.azurewebsites.net. Web サイトが読み込まれたら、[デバッグ コンソール] タブに移動します。Azure ポータルにホストされたコンソールにアクセスするには、アプリで [ツール]、[コンソール] の順に移動します。Once the website loads, go to the Debug console tab. To get to the Azure portal hosted console then from your app go to Tools -> Console.

ツールTools

pingnslookuptracert の各ツールは、セキュリティの制約により、コンソールから使用することはできません。The tools ping, nslookup and tracert won’t work through the console due to security constraints. それを補うために、2 つの独立したツールが追加されています。To fill the void, two separate tools added. DNS 機能のテスト用に、nameresolver.exe という名前のツールを追加しました。In order 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 mis-configured 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 will use in the console by looking at the environmental variables WEBSITE_DNS_SERVER and WEBSITE_DNS_ALT_SERVER.

次のツールでは、ホストとポートを組み合わせたものへの TCP 接続をテストすることができます。The next tool allows you 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 only can show success if: there is an application listening at the host and port combination, and there is network access from your app to the specified host and port.

VNet にホストされたリソースへのアクセスのデバッグDebugging access to VNet hosted resources

アプリから特定のホストとポートへのアクセスは、さまざまな要因によって妨げられる可能性があります。There are a number of things that can prevent your app from reaching a specific host and port. ほとんどの場合、次の 3 つのうちのいずれかです。Most of the time it is one of three things:

  • ファイアウォールがルートを塞いでいる。A firewall is in the way. ルートを塞いでいるファイアウォールがあると、TCP のタイムアウトに達します。If you have a firewall in the way, you will 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 due to many things beyond firewalls but start there.
  • DNS にアクセスできない。DNS isn't accessible. DNS タイムアウトは、DNS サーバーごとに 3 秒です。The DNS timeout is three seconds per DNS server. 2 つの DNS サーバーがある場合、タイムアウトは 6 秒です。If you have two DNS servers, the timeout is 6 seconds. nameresolver を使用して、DNS が機能しているかどうかを確認します。Use nameresolver to see if DNS is working. nslookup は使用できないことに注意してください。これは、nslookup が VNet の構成に使用されている DNS を使用しないためです。Remember you can't use nslookup as that doesn't use the DNS your VNet is configured with. アクセスできない場合は、ファイアウォールが存在するか、NSG が DNS へのアクセスをブロックしているか、または 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

  • 送信先は RFC 1918 アドレスか。is your destination an RFC 1918 address
  • 統合サブネットからのエグレスをブロックしている NSG は存在するか。is there an NSG blocking egress from your integration subnet
  • ExpressRoute または VPN をまたがって移動する場合は、オンプレミスのゲートウェイがトラフィック バックアップを Azure にルーティングするように構成されているか。if going across ExpressRoute or a VPN, is your on-premises gateway configured to route traffic back up to Azure? VNet 内のエンドポイントには到達できるが、オンプレミスに到達できない場合は、これを確認することをお勧めします。If you can reach endpoints in your VNet but not on-premises, this is good to check.

ゲートウェイが必要な 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 と同期していない VNet 構成への変更が行われたことが疑われる場合は、[ネットワークの同期] をクリックします。If your certificates are out of sync or you suspect that there has been a change made to your VNet configuration that wasn't synced with your ASPs, then hit "Sync Network".
  • ExpressRoute または VPN をまたがって移動する場合は、オンプレミスのゲートウェイがトラフィック バックアップを Azure にルーティングするように構成されているか。if going across ExpressRoute or a VPN, is your on-premises gateway configured to route traffic back up to Azure? VNet 内のエンドポイントには到達できるが、オンプレミスに到達できない場合は、これを確認することをお勧めします。If you can reach endpoints in your VNet but not on-premises, this is good to check.

ホストとポートの特定の組み合わせへのアクセスを何がブロックしているかを確認できないため、ネットワークに関する問題のデバッグは課題です。Debugging networking issues is a challenge because there you cannot see what is blocking access to a specific host:port combination. 以下に原因の例を示します。Some of the causes include:

  • ホスト上で稼働しているファイアウォールが、ポイント対サイト IP の範囲からアプリケーション ポートへのアクセスを妨げている。you have a firewall up on your host preventing 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

アプリが実際にどのようなアドレスを使用するかは認識できないことに注意してください。Remember that you don't know what address your app will actually use. 統合サブネットまたはポイント対サイトのアドレス範囲内の任意のアドレスである可能性があるため、アドレス範囲全体からのアクセスを許可する必要があります。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:

  • VNet 内の VM に接続し、そこからリソースのホスト:ポートへのアクセスを試します。connect to a VM in your VNet and attempt to reach your resource host:port from there. TCP アクセスのテストには、PowerShell コマンド test-netconnection を使用します。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 using tcpping

オンプレミスのリソースOn-premises resources

アプリがオンプレミスのリソースにアクセスできない場合は、VNet からリソースにアクセスできるかどうかを確認します。If your app cannot reach a resource on-premises, then check if you can reach the resource from your VNet. TCP アクセスを確認するには、PowerShell コマンド test-netconnection を使用します。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 may not be configured properly.

VNet でホストされている VM はオンプレミス システムにアクセスでき、アプリはアクセスできない場合、以下の理由のいずれかが原因と考えられます。If your VNet hosted VM can reach your on-premises system but your app can't, then the cause is likely one of the following reasons:

  • オンプレミスのゲートウェイで、ルートがサブネットまたはポイント対サイトのアドレス範囲で構成されていない。your routes are not 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 are trying to reach a non-RFC 1918 address using the regional VNet Integration feature

PowerShell オートメーションPowerShell automation

App Service は、PowerShell を使用して Azure 仮想ネットワークと統合できます。You can integrate App Service with an Azure Virtual Network using PowerShell. すぐに使用できるスクリプトについては、「Connect an app in Azure App Service to an Azure Virtual Network (Azure App Service のアプリを Azure 仮想ネットワークに接続する)」をご覧ください。For a ready-to-run script, see Connect an app in Azure App Service to an Azure Virtual Network.