App Service のネットワーク機能の概要

完了

既定では、App Service でホストされているアプリは、インターネット経由で直接アクセスでき、インターネットでホストされているエンドポイントにのみ到達できます。 しかし、多くのアプリケーションにおいては、送受信のネットワーク トラフィックを制御する必要があります。

Azure App Service のデプロイには、主に 2 つの種類があります。 マルチテナント パブリック サービスを使用すると、Free、Shared、Basic、Standard、Premium、PremiumV2、PremiumV3 の各価格の SKU で、App Service プランをホストできます。 また、シングルテナントの App Service Environment (ASE) を使用すると、Isolated SKU の App Service プランを、Azure 仮想ネットワークで直接ホストできます。

マルチテナント型 App Service のネットワーク機能

Azure App Service は分散システムです。 受信した HTTP または HTTPS 要求を処理するロールは、"フロントエンド" と呼ばれます。 お客様のワークロードをホストするロールは、"worker" と呼ばれます。 App Service デプロイ内のロールはすべて、マルチテナント ネットワーク内に存在します。 同じ App Service スケール ユニット内に多くのお客様が存在しているので、App Service ネットワークをお使いのネットワークに直接接続することはできません。

ネットワークを接続する代わりに、アプリケーション通信のさまざまな側面を処理する機能が必要になります。 この機能はアプリに対する要求を処理するので、アプリを呼び出す場合の問題の解決には使用することはできません。 同様に、お客様のアプリからの呼び出しに関する問題を解決する機能を、お客様のアプリに対する問題を解決するために使用することはできません。

受信時の機能 送信時の機能
アプリに割り当てられたアドレス ハイブリッド接続
アクセスの制限 ゲートウェイが必要な仮想ネットワーク統合
サービス エンドポイント 仮想ネットワークの統合
プライベート エンドポイント

機能を組み合わせることで、いくつかの例外を除いて、問題を解決できます。 次の受信ユース ケースは、App Service のネットワーク機能を使用して、アプリで受信するトラフィックを制御する方法の例です。

受信のユース ケース 機能
アプリの IP ベース SSL のニーズをサポートする アプリに割り当てられたアドレス
アプリに対する非共有の専用受信アドレスをサポートする アプリに割り当てられたアドレス
アプリへのアクセスを明確に定義されたアドレス セットだけに制限する アクセスの制限

既定のネットワークの動作

Azure App Service スケール ユニットを使用すると、デプロイごとに多数のお客様がサポートされます。 Free および Shared SKU のプランを使用すると、お客様のワークロードはマルチテナント worker 上でホストされます。 Basic 以上のプランを使用すると、ただ 1 つの App Service プランに専用のお客様のワークロードがホストされます。 App Service プランが Standard の場合、そのプラン内のすべてのアプリが同じ worker 上で実行されます。 worker をスケール アウトした場合、その App Service プラン内にあるすべてのアプリが、App Service プラン内の各インスタンスの新しい worker にレプリケートされます。

送信アドレス

worker VM は、主に App Service プラン別に大きく分けられます。 Free、Shared、Basic、Standard、Premium の各プランで使用される worker VM の種類はすべて同じです。 PremiumV2 プランの場合は、使用される VM の種類が異なります。 PremiumV3 の場合は、さらに別の種類の VM が使用されます。 VM ファミリを変更すると、異なる送信アドレスのセットを受け取ります。

送信呼び出しに使用されるアドレスは多数あります。 送信呼び出しを行うためにアプリによって使用される送信アドレスは、アプリのプロパティで一覧表示されます。 これらのアドレスは、その App Service デプロイ内の同じ worker VM ファミリで実行されているすべてのアプリによって共有されます。 アプリがスケール ユニットで使用する可能性のあるすべてのアドレスを表示するには、その一覧を示すには possibleOutboundIpAddresses というプロパティがあります。

IP アドレスを見つける

Azure portal で現在アプリに使用されている送信 IP アドレスを見つけるには、アプリの左側のナビゲーションで [プロパティ] をクリックします。

Cloud Shell で次のコマンドを実行すると、同じ情報を見つけることができます。 これは、"追加の送信 IP アドレス" フィールドに表示されます。

az webapp show \
    --resource-group <group_name> \
    --name <app_name> \ 
    --query outboundIpAddresses \
    --output tsv

価格レベルに関係なく、アプリのすべての可能な送信 IP アドレスを見つけるには、Cloud Shell で次のコマンドを実行します。

az webapp show \
    --resource-group <group_name> \ 
    --name <app_name> \ 
    --query possibleOutboundIpAddresses \
    --output tsv