App Service ランディング ゾーン アクセラレータのネットワーク トポロジと接続に関する考慮事項
この記事では、Azure App Service のランディング ゾーン アクセラレータを使用しているときに適用できるネットワーク トポロジと接続に関する設計上の考慮事項と推奨事項について説明します。 ネットワークは、ランディング ゾーンのほぼすべての中心です。
このアーキテクチャのネットワーク トポロジと接続に関する考慮事項は、ホストされているワークロードの要件と、組織のセキュリティとコンプライアンスの要件によって異なります。
設計上の考慮事項
Azure に App Service ソリューションをデプロイするときは、アプリケーションが正しく機能するようにネットワーク要件を慎重に検討する必要があります。 デプロイを計画するときに考慮する主要な要素がいくつかあります。
アプリケーションのネットワーク要件を決定します。
- 受信トラフィック。 アプリが Web サイトや API などの Web ベースのサービスを提供する場合は、おそらくインターネットからの受信トラフィックを受信できる必要があります。 アプリが受信接続を受け入れることができるようにするには、適切なポートでリッスンするように構成する必要があります。
- 他の Azure リソースへのアクセス権。 アプリが、プライベート エンドポイントを使用して、ストレージ アカウントやデータベースなどの Azure 上のリソースにアクセスできることが必要な場合があります。 これらのリソースは、Azure 仮想ネットワークまたはその他の Azure サービス内にある可能性があります。
- SSL/TLS。 アプリとそのユーザー間の通信をセキュリティで保護するには、SSL/TLS 暗号化を有効にする必要があります。 これにより、アプリとそのユーザー間のトラフィックが確実に暗号化され、機密情報がサード パーティによって傍受されるのを防ぐことができます。
- IP 制限。 要件によっては、特定の IP アドレスまたは範囲からアプリへのアクセスを許可またはブロックすることが必要な場合があります。 これにより、セキュリティが強化され、アプリへのアクセスを特定のユーザーまたは場所に制限できます。
App Service プランレベルを選択します。 アプリケーションのネットワーク要件を使用して、App Service プランの適切なレベルを決定します。 さまざまな App Service プランレベルとその機能を確認して、ニーズに最も適しているかどうかを判断することをお勧めします。
App Service のマルチテナント サービス
App Service のマルチテナント ソリューションは、1 つのデプロイ ユニットで、1 つの受信 IP アドレスと複数の送信 IP アドレスを他の App Service リソースと共有します。 これらの IP アドレスは、さまざまな理由で変更される可能性があります。 マルチテナント App Service ソリューションに一貫した送信 IP アドレスが必要な場合は、NAT ゲートウェイを構成するか、仮想ネットワーク統合を使用できます。
App Service ソリューションに専用 IP アドレスが必要な場合は、アプリ割り当てアドレスを使用するか、アプリケーション ゲートウェイ (静的 IP アドレスが割り当てられている) を使用して App Service インスタンスの前に配置するか、IP ベースの SSL 証明書を使用して、App Service プラットフォーム経由で専用 IP アドレスをアプリに割り当てることができます。
App Service ソリューションからオンプレミスのプライベートまたは IP 制限付きサービスに接続する必要があるときは、次の点を考慮してください。
- マルチテナント App Service デプロイでは、App Service 呼び出しが幅広い IP アドレスから発信される可能性があります。 仮想ネットワーク統合が必要な場合があります。
- API Management や Application Gateway などのサービスを使用して、ネットワーク境界間の呼び出しをプロキシ経由にできます。 これらのサービスは、必要に応じて静的 IP アドレスを提供できます。
マルチテナント App Service デプロイには、プライベートまたはパブリックのエンドポイントを使用できます。 プライベート エンドポイントを使用すると、App Service ソリューションへのパブリック公開が排除されます。 App Service ソリューションのプライベート エンドポイントにインターネット経由でアクセスできるようにする必要がある場合は、Application Gateway を使用して App Service ソリューションを公開することを検討してください。
マルチテナント App Service デプロイでは、一連のポートが公開されます。 マルチテナント App Service デプロイでこれらのポートへのアクセスをブロックまたは制御する方法はありません。
送信仮想ネットワーク統合のためにサブネットを正しく計画し、必要な IP アドレスの数を検討してください。 仮想ネットワーク統合は、専用サブネットに依存します。 Azure サブネットをプロビジョニングすると、Azure によって 5 つの IP が予約されます。 App Service プラン インスタンスごとに、統合サブネットから 1 つの IP アドレスが使用されます。 たとえば、アプリを 4 つのインスタンスにスケールすると、4 つの IP アドレスが使用されます。 スケールアップまたはスケールダウンすると、必要なアドレス空間がわずかの間 2 倍になります。 これは、特定のサブネット サイズの使用可能なサポートされるインスタンスに影響します。
割り当て後にサブネットのサイズを変更することはできないため、アプリが到達する規模に対応するのに十分な大きさのサブネットを使用する必要があります。 サブネット容量に関する問題を回避するには、仮想ネットワークの統合に 64 個のアドレスを持つ /26 を使用してください。
マルチテナント App Service ソリューションに接続していて、専用の送信アドレスが必要な場合は、NAT ゲートウェイを使用します。
App Service Environment (シングルテナント)
- App Service Environment ネットワーク設計 (外部ロード バランサーまたは内部ロード バランサー) を決定します。 インターネットから直接アクセスする必要があるときは、外部デプロイを使用します。 App Service Environment がデプロイされている仮想ネットワーク内からのアクセスのみを公開するには、内部ロード バランサーのデプロイを使用します。 後者のデプロイでは、別のレベルのセキュリティと、アプリへのネットワーク アクセスの制御が提供されます。
- App Service Environment にデプロイされた App Services は、App Service Environment の有効期間について、受信と送信の通信用の静的な専用 IP アドレスを取得します。
- App Service Environment からオンプレミス、プライベート、または IP 制限付きサービスに接続する必要があるとき、App Service Environment は仮想ネットワークのコンテキスト内で実行されます。
- App Service Environment をデプロイするときに、サブネットのサイズを選択します。 後でサイズを変更することはできません。 最大サイズの App Service Environment とすべてのスケーリング ニーズを処理できる 256 のアドレスを持つ /24 のサイズをお勧めします。
設計の推奨事項
次のベスト プラクティスは、App Service のすべてのデプロイにあてはまります。
- App Service ソリューションへの接続:
- App Service ソリューションの前面に Azure Web アプリケーション ファイアウォールを実装します。 Azure Front Door、Application Gateway、またはパートナー サービスを使用して、この OWASP ベースの保護を提供します。 1 つのリージョンに対して Azure Front Door または Application Gateway を、複数のリージョンに対して両方を使用できます。 リージョンでパス ルーティングが必要な場合は、Application Gateway を使用してください。 複数リージョンの負荷分散と Web Application Firewall が必要な場合は、Azure Front Door を使用してください。
- App Service に対してプライベート エンドポイントを使用すると、パブリックなインターネット ベースのエンドポイントではなく、プライベートなネットワーク ベースのエンドポイント経由でアプリにアクセスできます。 プライベート エンドポイントを使用すると、アプリへのアクセスを仮想ネットワーク内のユーザーのみに制限できます。これにより、アプリのセキュリティの別のレイヤーが提供され、データ エグレス コストが削減され、パフォーマンスが向上します。
- アクセス制限を使用して、App Service ソリューションに有効な場所からのみ到達できるようにします。 たとえば、マルチテナント App Service デプロイが API をホストしていて、前面に API Management が配置されている場合は、App Service ソリューションにアクセスできるのが API Management からのみになるようにアクセス制限を設定します。
- App Service ソリューションからの接続:
- 他の Azure サービスへのプライベート接続が必要な場合は、Azure Private Link を使用します (そのサービスでサポートされている場合)。
- 組み込みのツールを使用して、ネットワークの問題をトラブルシューティングします。
- 接続プールを利用して SNAT ポートの枯渇を回避します。 同じホストとポートに対して接続を繰り返し作成すると、応答時間が遅くなったり、断続的な 5xx エラーやタイムアウト、外部エンドポイント接続の問題が発生したりする可能性があります。
- App Service の Azure セキュリティ ベースラインの「ネットワーク セキュリティ セクション」で説明されている推奨事項に従ってください。
App Service ランディング ゾーン アクセラレータのネットワーク トポロジと接続に関する考慮事項の目標は、App Services をデプロイするためのスケーラブルで復元力のある環境を実装するための高レベルのテンプレートを提供することです。 このテンプレートはネットワーク アーキテクチャと接続に焦点を当てており、App Services ソリューションをホストするために Azure にランディング ゾーンを迅速かつ効率的に設定するのに役立ちます。