App Service Environment で内部ロード バランサーを作成して使用するCreate and use an Internal Load Balancer App Service Environment

Azure App Service Environment は、Azure 仮想ネットワーク (VNet) 内のサブネットに Azure App Service をデプロイしたものです。The Azure App Service Environment is a deployment of Azure App Service into a subnet in an Azure virtual network (VNet). App Service Environment (ASE) をデプロイするには、次の 2 つの方法があります。There are two ways to deploy an App Service Environment (ASE):

  • 外部 IP アドレスの VIP を使用する。外部 ASE と呼ばれます。With a VIP on an external IP address, often called an External ASE.
  • 内部 IP アドレスの VIP を使用する。内部エンドポイントは内部ロード バランサー (ILB) であるため、ILB ASE と呼ばれます。With a VIP on an internal IP address, often called an ILB ASE because the internal endpoint is an internal load balancer (ILB).

この記事では、ILB ASE を作成する方法について説明します。This article shows you how to create an ILB ASE. ASE の概要については、「App Service Environment の概要」をご覧ください。For an overview on the ASE, see Introduction to App Service Environments. 外部 ASE を作成する方法については、外部 ASE を作成する方法についての記事をご覧ください。To learn how to create an External ASE, see Create an External ASE.

概要Overview

ASE は、インターネットにアクセスできるエンドポイント、または VNet の IP アドレスを使用してデプロイできます。You can deploy an ASE with an internet-accessible endpoint or with an IP address in your VNet. IP アドレスを VNet のアドレスに設定するには、ASE を ILB でデプロイする必要があります。To set the IP address to a VNet address, the ASE must be deployed with an ILB. ASE を ILB でデプロイする際は、使用する ASE の名前を指定する必要があります。When you deploy your ASE with an ILB, you must provide the name of your ASE. ASE の名前は、ASE 内のアプリのドメイン サフィックスで使用されます。The name of your ASE is used in the domain suffix for the apps in your ASE. ILB ASE のドメイン サフィックスは <ASE 名>.appserviceenvironment.net です。The domain suffix for your ILB ASE is <ASE name>.appserviceenvironment.net. ILB ASE 内で作成されるアプリは、パブリック DNS 内には配置されません。Apps that are made in an ILB ASE are not put in the public DNS.

以前のバージョンの ILB ASE では、ドメイン サフィックスと既定の証明書を HTTPS 接続用に指定する必要がありました。Earlier versions of the ILB ASE required you to provide a domain suffix and a default certificate for HTTPS connections. ドメイン サフィックスは ILB ASE の作成時に収集されなくなり、既定の証明書も収集されなくなっています。The domain suffix is no longer collected at ILB ASE creation and a default certificate is also no longer collected. 現在 ILB ASE を作成する際は、Microsoft が提供する、ブラウザーによって信頼された証明書が既定で使用されます。When you create an ILB ASE now, the default certificate is provided by Microsoft and is trusted by the browser. ASE でアプリにカスタム ドメイン名を設定し、それらのカスタム ドメイン名に証明書を設定することは、まだ可能です。You are still able to set custom domain names on apps in your ASE and set certificates on those custom domain names.

ILB ASE を使用すると、次のようなことができます。With an ILB ASE, you can do things such as:

  • サイト間接続または ExpressRoute でアクセスするクラウドでイントラネット アプリケーションを安全にホストできます。Host intranet applications securely in the cloud, which you access through a site-to-site or ExpressRoute.
  • WAF デバイスを使用してアプリを保護できます。Protect apps with a WAF device
  • パブリック DNS サーバーに示されていないクラウドでアプリケーションをホストできます。Host apps in the cloud that aren't listed in public DNS servers.
  • インターネットから分離されたバックエンド アプリを作成して、ご使用のフロントエンド アプリを安全に統合できます。Create internet-isolated back-end apps, which your front-end apps can securely integrate with.

無効な機能Disabled functionality

ILB ASE を使用する際に実行できないことがいくつかあります。There are some things that you can't do when you use an ILB ASE:

  • IP ベース SSL の使用。Use IP-based SSL.
  • 特定のアプリへの IP アドレスの割り当て。Assign IP addresses to specific apps.
  • Azure Portal からのアプリの証明書の購入と使用。Buy and use a certificate with an app through the Azure portal. 証明書は、証明機関から直接入手して、アプリで使用できます。You can obtain certificates directly from a certificate authority and use them with your apps. Azure Portal では入手できません。You can't obtain them through the Azure portal.

ILB ASE を作成するCreate an ILB ASE

ILB ASE を作成する方法は次のとおりです。To create an ILB ASE:

  1. Azure portal で、 [リソースの作成] > [Web] > [App Service Environment] の順に選択します。In the Azure portal, select Create a resource > Web > App Service Environment.

  2. サブスクリプションを選択します。Select your subscription.

  3. リソース グループを選択または作成します。Select or create a resource group.

  4. 使用する App Service Environment の名前を入力します。Enter the name of your App Service Environment.

  5. [仮想 IP の種類] で [内部] を選択します。Select virtual IP type of Internal.

    ASE の作成

  6. [ネットワーク] を選択します。Select Networking

  7. Virtual Network を選択または作成します。Select or create a Virtual Network. ここで新しい VNet を作成する場合は、192.168.250.0/23 のアドレス範囲で定義されます。If you create a new VNet here, it will be defined with an address range of 192.168.250.0/23. ASE とは別のアドレス範囲またはリソース グループ内に VNet を作成するには、Azure Virtual Network の作成ポータルを使用します。To create a VNet with a different address range or in a different resource group than the ASE, use the Azure Virtual Network creation portal.

  8. 空のサブネットを選択または作成します。Select or create an empty a subnet. サブネットを選択する場合、そのサブネットは、委任されておらず空である必要があります。If you want to select a subnet, it must be empty and not delegated. ASE の作成後は、サブネットのサイズを変更できません。The subnet size cannot be changed after the ASE is created. 推奨されるサイズは、最大サイズの ASE とあらゆるスケーリング ニーズを処理できる 256 のアドレスを持つ /24 です。We recommend a size of /24, which has 256 addresses and can handle a maximum-sized ASE and any scaling needs.

    ASE の [ネットワーク]

  9. [確認と作成] を選択し、次に [作成] を選択します。Select Review and Create then select Create.

ILB ASE 内にアプリを作成するCreate an app in an ILB ASE

通常 ASE 内にアプリを作成するのと同じ方法で、ILB ASE 内にアプリを作成します。You create an app in an ILB ASE in the same way that you create an app in an ASE normally.

  1. Azure portal で、 [リソースの作成] > [Web] > [Web アプリ] の順に選択します。In the Azure portal, select Create a resource > Web > Web App.

  2. アプリの名前を入力します。Enter the name of the app.

  3. サブスクリプションを選択します。Select the subscription.

  4. リソース グループを選択または作成します。Select or create a resource group.

  5. [発行]、[ランタイム スタック]、[オペレーティング システム] を選択します。Select your Publish, Runtime Stack, and Operating System.

  6. 既存の ILB ASE の場所を選択します。Select a location where the location is an existing ILB ASE. Isolated App Service プランを選択して、アプリの作成中に新しい ASE を作成することもできます。You can also create a new ASE during app creation by selecting an Isolated App Service plan. 新しい ASE を作成する場合は、ASE の作成先のリージョンを選択します。If you wish to create a new ASE, select the region you want the ASE to be created in.

  7. App Service プランを選択または作成します。Select or create an App Service plan.

  8. [確認と作成] を選択し、準備ができたら [作成] を選択します。Select Review and Create then select Create when you are ready.

Web ジョブ、関数および ILB ASEWeb jobs, Functions and the ILB ASE

関数と Web ジョブはどちらも ILB ASE 上でサポートされますが、それらとポータルを連動するには、SCM サイトへのネットワーク アクセスが必要です。Both Functions and web jobs are supported on an ILB ASE but for the portal to work with them, you must have network access to the SCM site. つまり、お使いのブラウザーが、仮想ネットワーク内のホストまたは仮想ネットワークに接続しているホストに存在する必要があります。This means your browser must either be on a host that is either in or connected to the virtual network. ILB ASE で使用しているドメイン名が appserviceenvironment.net で終わらない場合は、お使いのブラウザーで、SCM サイトで使用されている HTTPS 証明書を信頼する必要があります。If your ILB ASE has a domain name that does not end in appserviceenvironment.net, you will need to get your browser to trust the HTTPS certificate being used by your scm site.

DNS の構成DNS configuration

外部 VIP を使用する場合、DNS は Azure によって管理されます。When you use an External VIP, the DNS is managed by Azure. ASE に作成されるすべてのアプリは、Azure DNS (パブリック DNS) に自動的に追加されます。Any app created in your ASE is automatically added to Azure DNS, which is a public DNS. ILB ASE では、独自の DNS を管理する必要があります。In an ILB ASE, you must manage your own DNS. ILB ASE で使用されるドメイン サフィックスは、ASE の名前に依存します。The domain suffix used with an ILB ASE depends on the name of the ASE. ドメイン サフィックスは " <ASE 名>.appserviceenvironment.net" です。The domain suffix is <ASE name>.appserviceenvironment.net. ご使用の ILB の IP アドレスはポータル内の [IP アドレス] の下に表示されます。The IP address for your ILB is in the portal under IP addresses.

DNS を構成するには、次の手順に従います。To configure your DNS:

  • " <ASE 名>.appserviceenvironment.net" 用のゾーンを作成するcreate a zone for <ASE name>.appserviceenvironment.net
  • そのゾーンに、ILB の IP アドレスに * を指定する A レコードを作成するcreate an A record in that zone that points * to the ILB IP address
  • そのゾーンに、ILB の IP アドレスに @ を指定する A レコードを作成するcreate an A record in that zone that points @ to the ILB IP address
  • " <ASE 名>.appserviceenvironment.net" に scm という名前のゾーンを作成するcreate a zone in <ASE name>.appserviceenvironment.net named scm
  • scm ゾーンに、ILB の IP アドレスに * を指定する A レコードを作成するcreate an A record in the scm zone that points * to the ILB IP address

ILB ASE で発行するPublish with an ILB ASE

作成されるすべてのアプリにはエンドポイントが 2 つあります。For every app that's created, there are two endpoints. ILB ASE には、" <アプリ名>.<ILB ASE ドメイン> " と " <アプリ名>.scm.<ILB ASE ドメイン> " があります。In an ILB ASE, you have <app name>.<ILB ASE Domain> and <app name>.scm.<ILB ASE Domain>.

SCM サイト名をクリックすると、Azure Portal 内の Kudu コンソールに移動します。これは、高度なポータルと呼ばれます。The SCM site name takes you to the Kudu console, called the Advanced portal, within the Azure portal. Kudu コンソールでは、環境変数の表示、ディスクの確認、コンソールの使用などができます。The Kudu console lets you view environment variables, explore the disk, use a console, and much more. 詳しくは、Azure App Service の Kudu コンソールに関するビデオをご覧ください。For more information, see Kudu console for Azure App Service.

インターネット ベースの CI システム (GitHub や Azure DevOps など) は、ビルド エージェントがインターネットにアクセス可能であり、かつ ILB ASE と同じネットワーク上に存在すれば、引き続き機能します。Internet-based CI systems, such as GitHub and Azure DevOps, will still work with an ILB ASE if the build agent is internet accessible and on the same network as ILB ASE. したがって、Azure DevOps の場合、ビルド エージェントが ILB ASE と同じ VNET 上に作成されていれば (サブネットは異なっていてもかまいません)、Azure DevOps git からコードをプルして ILB ASE にデプロイできます。So in case of Azure DevOps, if the build agent is created on the same VNET as ILB ASE (different subnet is fine), it will be able to pull code from Azure DevOps git and deploy to ILB ASE. 独自のビルド エージェントを作成しない場合は、プル モデルを使用している CI システム (Dropbox など) を使用する必要があります。If you don't want to create your own build agent, you need to use a CI system that uses a pull model, such as Dropbox.

ILB ASE 内のアプリには、その ILB ASE の作成時に使用されたドメインが、発行エンドポイントとして使用されます。The publishing endpoints for apps in an ILB ASE use the domain that the ILB ASE was created with. このドメインは、アプリの発行プロファイルとアプリのポータル ブレード ( [概要] > [要点][プロパティ] など) に表示されます。This domain appears in the app's publishing profile and in the app's portal blade (Overview > Essentials and also Properties). ILB ASE のドメイン サフィックスが " <ASE 名>.appserviceenvironment.net" で、アプリの名前が mytest である場合、FTP では "mytest.<ASE 名>.appserviceenvironment.net" となり、Web デプロイでは mytest.scm.contoso.net となります。If you have an ILB ASE with the domain suffix <ASE name>.appserviceenvironment.net, and an app named mytest, use mytest.<ASE name>.appserviceenvironment.net for FTP and mytest.scm.contoso.net for web deployment.

WAF デバイスを使用して ILB ASE を構成するConfigure an ILB ASE with a WAF device

Web アプリケーション ファイアウォール (WAF) デバイスを ILB ASE と組み合わせることで、指定したアプリだけをインターネットに公開し、それ以外は VNet 内からしかアクセスできないようにすることができます。You can combine a web application firewall (WAF) device with your ILB ASE to only expose the apps that you want to the internet and keep the rest only accessible from in the VNet. これにより、セキュリティで特に保護された多層アプリケーションを構築できます。This enables you to build secure multi-tier applications among other things.

WAF デバイスを使用して ILB ASE を構成する方法の詳細については、App Service 環境での Web アプリケーション ファイアウォールの構成に関するページを参照してください。To learn more about how to configure your ILB ASE with a WAF device, see Configure a web application firewall with your App Service environment. この記事では、Barracuda 仮想アプライアンスを ASE と使用する方法について示します。This article shows how to use a Barracuda virtual appliance with your ASE. Azure Application Gateway を使用する方法もあります。Another option is to use Azure Application Gateway. Application Gateway は OWASP コア ルールを使用して、その背後に置かれたすべてのアプリケーションのセキュリティを確保します。Application Gateway uses the OWASP core rules to secure any applications placed behind it. Application Gateway について詳しくは、「Web アプリケーション ファイアウォール (WAF)」をご覧ください。For more information about Application Gateway, see Introduction to the Azure web application firewall.

2019 年 5 月より前に作成された ILB ASEILB ASEs made before May 2019

2019 年 5 月より前に作成された ILB ASE では、ASE の作成中にドメイン サフィックスを設定する必要がありました。ILB ASEs that were made before May 2019 required you to set the domain suffix during ASE creation. また、そのドメイン サフィックスに基づいた既定の証明書をアップロードする必要もありました。They also required you to upload a default certificate that was based on that domain suffix. さらに、古い ILB ASE では、その ILB ASE 内のアプリを使用して Kudu コンソールにシングル サインオンすることはできませんでした。Also, with an older ILB ASE you can't perform single sign-on to the Kudu console with apps in that ILB ASE. 古い ILB ASE 向けに DNS を構成するときは、ドメイン サフィックスと一致するゾーン内にワイルドカードの A レコードを設定する必要があります。When configuring DNS for an older ILB ASE, you need to set the wildcard A record in a zone that matches to your domain suffix.

作業開始Get started