App Service のネットワーク機能の検出
既定では、App Service でホストされているアプリにはインターネット経由で直接アクセスでき、インターネットでホストされているエンドポイントにのみアクセスできます。 多くのアプリケーションにおいては、送受信のネットワーク トラフィックを制御する必要があります。
Azure App Service のデプロイには、主に 2 つの種類があります。
- マルチテナント パブリック サービスは、App Service プランを Free、Shared、Basic、Standard、Premium、PremiumV2、PremiumV3 の価格 SKU でホストします。
- シングルテナントの 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 プランでは、マルチテナント ワーカーで顧客のワークロードがホストされます。 Basic 以降のプランでは、1 つの App Service プラン専用の顧客ワークロードがホストされます。 Standard App Service プランがある場合は、そのプラン内のすべてのアプリが同じ worker で実行されます。 ワーカーをスケールアウトすると、その App Service プラン内のすべてのアプリが、App Service プランのインスタンスごとに新しい worker にレプリケートされます。
送信アドレス
worker 仮想マシンは、主に App Service プラン別に大きく分けられます。 Free、Shared、Basic、Standard、Premium の各プランで使用される worker 仮想マシンの種類はすべて同じです。 PremiumV2 プランの場合は、使用される仮想マシンの種類が異なります。 PremiumV3 では、さらに別の仮想マシンの種類が使用されます。 仮想マシン ファミリを変更すると、異なる送信アドレスのセットを受け取ります。
送信呼び出しに使用されるアドレスは多数あります。 アプリで送信呼び出しを行う際に使用される送信アドレスは、アプリのプロパティに一覧表示されます。 これらのアドレスは、App Service デプロイ内の同じワーカー仮想マシン ファミリで実行されているすべてのアプリによって共有されます。 アプリがスケール ユニットで使用するすべてのアドレスを表示する場合は、それらを一覧表示する possibleOutboundIpAddresses
というプロパティがあります。
送信 IP を検索する
Azure portal でアプリで現在使用されている送信 IP アドレスを確認するには、アプリの左側のナビゲーションで [プロパティ ] を選択します。
Cloud Shell で次の Azure CLI コマンドを実行すると、同じ情報を見つけることができます。 [ 追加の送信 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