Azure Front Door を使用して Web アプリケーションを高速化し、セキュリティで保護する
Azure Front Door は、Web アプリケーションとコンテンツの待機時間を短縮し、配信速度を向上させる、グローバルに分散されたコンテンツ配信ネットワーク (CDN) です。 さらに、Front Door を使用すると、最高レベルの回復性でコンテンツを利用でき、高度なアプリケーション ロード バランサー、トラフィック高速化、セキュリティなど、幅広い機能が提供されます。
インターネット上で公開されている Web アプリケーションの前に Front Door をデプロイすることを検討してください。
Azure 上の Well-Architected ソリューション
Azure Well-Architected フレームワークでは、優れたアーキテクチャの 5 本の柱について説明しています。 Azure Front Door を使用すると、組み込まれた機能を使って、5 本の柱のそれぞれに対処できます。
パフォーマンス効率
Front Door には、アプリケーションのパフォーマンス向上に役立ついくつかの機能が用意されています。
- キャッシュ: Front Door には、ネットワーク エッジにコンテンツをキャッシュするための強力なコンテンツ配信ネットワーク (CDN) が用意されています。 ほぼすべての Web アプリケーションに、キャッシュ可能なコンテンツが含まれています。 画像や JavaScript ファイルなどの静的アセットはキャッシュ可能です。 また、多くの API では、短時間でも、キャッシュできる応答が返されます。 キャッシュにより、アプリケーションのパフォーマンスを向上させ、アプリケーション サーバーの負荷を軽減できます。
- 圧縮: 多くの種類の応答は圧縮でき、それによってアプリケーションの応答時間を向上させることができます。
- グローバル トラフィック アクセラレーション: Front Door のグローバル トラフィック アクセラレーション機能を使用すると、Microsoft の高速バックボーン ネットワークを介して要求をルーティングすることで、動的 Web アプリケーションのパフォーマンスを向上させることができます。
- TLS 終端: Front Door への接続は、Front Door の最も近いポイント オブ プレゼンス (PoP) で終了します。 TLS 解読は PoP によって実行されます。 TLS 解読を行っているときのパフォーマンスへの最大の影響は、初期ハンドシェイクです。 パフォーマンスを向上させるには、解読を行うサーバーで TLS セッション ID をキャッシュし、TLS セッション チケットを管理します。 TLS 接続が Front Door の PoP で終了している場合は、同じクライアントからのすべての要求で、キャッシュされた値を使用できます。 配信元サーバーで行われた場合は、クライアントの要求が別のサーバーに到達するたびに、クライアントの再認証が必要になります。 TLS チケットの使用はこの問題の軽減に役立ちますが、すべてのクライアントでサポートされているわけではなく、構成と管理は難しい場合があります。
セキュリティ
Front Door のセキュリティ機能は、さまざまな種類の脅威からアプリケーション サーバーを保護するのに役立ちます。
- エンド ツー エンド TLS: Front Door では、エンド ツー エンド TLS 暗号化がサポートされています。 Front Door の TLS/SSL オフロードでは、TLS 接続を終了し、Azure Front Door でトラフィックを復号化し、トラフィックを再暗号化してからバックエンドに転送します。
- マネージド TLS 証明書: Front Door では証明書を発行および管理して、強力な暗号化と信頼によってアプリケーションを保護できます。
- カスタム TLS 証明書: 独自の TLS 証明書を使用する必要がある場合は、Front Door を使用すると、マネージド ID を使用して、証明書が含まれているキー コンテナーにアクセスできます。
- Web アプリケーション ファイアウォール: Front Door の Web アプリケーション ファイアウォール (WAF) によって、アプリケーションにさまざまなセキュリティ機能が提供されます。 マネージド ルール セットでは、受信要求をスキャンして疑わしいコンテンツがないか調べます。 ボット保護ルールは、ボットからのトラフィックを識別して応答します。 ジオフィルタリング機能とレート制限機能により、予期しないトラフィックからアプリケーション サーバーが保護されます。
- プロトコル ブロッキング: Front Door は、HTTP および HTTPS プロトコルのトラフィックのみを受け入れ、既知の
Host
ヘッダーを持つ有効な要求だけを処理します。 この動作により、アプリケーションはさまざまなプロトコルにわたるさまざまな種類の攻撃から保護されます。 - DDoS 保護: Front Door のアーキテクチャにより、大規模な分散型サービス拒否 (DDoS) 攻撃を吸収し、トラフィックがアプリケーションに到達するのを防ぐこともできます。
- Private Link の配信元: Private Link 統合は、トラフィックが Front Door とそのセキュリティ保護を通過してのみアプリケーションに到達することを確保すると、バックエンド アプリケーションを保護するのに役立ちます。
厳密なネットワーク セキュリティ要件がある場合は、Azure Front Door を使用してアプリケーションへの受信 HTTP および HTTPS トラフィックを管理し、Azure Firewall を使用して HTTP 以外のトラフィックとエグレス トラフィックを制御できます。
[信頼性]
Front Door を使用すると、回復力のある高可用性ソリューションを作成できます。
- 負荷分散とフェールオーバー: Front Door はグローバル ロード バランサーです。 Front Door では配信元サーバーの正常性を監視しており、配信元が使用できなくなった場合は、要求を別の配信元にルーティングできます。 また、Front Door を使用して複数の配信元にトラフィックを分散させて、1 つの配信元サーバーの負荷を軽減することもできます。
- エニーキャスト ルーティング: Front Door 自体には多数の PoP があり、そのそれぞれが、どの要求のトラフィックも処理できます。 エニーキャスト ルーティングでは、Front Door の最も近い使用可能な PoP にトラフィックが誘導され、PoP が使用できない場合、クライアントは次に近い PoP に自動的にルーティングされます。
- キャッシュ: Front Door のキャッシュを使用すると、アプリケーション サーバーの負荷を軽減できます。 サーバーが使用できない場合、Front Door では、アプリケーションが回復するまで、キャッシュされた応答を引き続き提供できる可能性があります。
コストの最適化
Front Door は、Azure ソリューションの実行コストを削減するのに役立ちます。
- キャッシュ:キャッシュを有効にすると、Front Door のグローバル エッジ ノードからコンテンツが返されます。 この方法により、グローバル帯域幅の料金が削減され、パフォーマンスが向上します。
- 圧縮: Front Door によって応答が圧縮されると、ソリューションの帯域幅の料金が削減されます。
- 複数の配信元にトラフィックを分散する: Front Door を使用することで、アプリケーション サーバーをスケーリングしたり、トラフィックの急増に備えてサーバーの容量を過剰プロビジョニングしたりする必要性を減らすことができます。 Front Door の各 PoP では、キャッシュされたコンテンツ (使用可能な場合) を返すことができます。これにより、アプリケーション サーバーの負荷が軽減されます。 また、複数のバックエンド サーバーにトラフィックを分散させ、個々のサーバーの負荷を軽減することもできます。
- 共有プロファイル: さまざまなアプリケーションに対して 1 つの Front Door プロファイルを使用できます。 Front Door で複数のアプリケーションを構成する場合は、各アプリケーションでコストを共有し、実行する必要がある構成を減らすことができます。
オペレーショナル エクセレンス
Front Door を使用すると、最新のインターネット アプリケーションを実行する運用負担を軽減し、アプリケーションを変更せずにソリューションに何らかの変更を加えることができます。
- マネージド TLS 証明書: Front Door では、証明書を発行して管理できます。 この機能により、証明書の更新を管理する必要がなくなり、無効または期限切れの TLS 証明書を使用したことによって発生する停止の可能性を減らすことができます。
- ワイルドカード TLS 証明書: DNS や TLS 証明書を含む、Front Door のワイルドカード ドメインのサポートにより、サブドメインごとに Front Door を再構成せずに複数のホスト名を使用できます。
- HTTP/2: Front Door では、HTTP/2 サポートを使用して、アプリケーション サーバーを変更せずにレガシ アプリケーションを最新化できます。
- ルール エンジン: Front Door のルール エンジンを使用すると、クライアントに影響を与えることなく、ソリューションの内部アーキテクチャを変更できます。
- コードとしてのインフラストラクチャ: Bicep、Terraform、ARM テンプレート、Azure PowerShell、Azure CLI などのコードとしてのインフラストラクチャ (IaC) テクノロジを使用して、Front Door をデプロイして構成することもできます。
ソリューションのアーキテクチャ
Azure Front Door を使用するソリューションをデプロイする場合は、クライアントから Front Door、Front Door から配信元へのトラフィックのフローについて検討する必要があります。
次の図は、Front Door を使用した一般的なソリューション アーキテクチャを示しています。
クライアントから Front Door
クライアントからのトラフィックは、最初に Front Door の PoP に到着します。 Front Door には世界中に分散された多数の PoP があり、エニーキャストによってクライアントは最も近い PoP にルーティングされます。
Front Door の PoP によって要求が受信されると、Front Door ではカスタム ドメイン名を使用して要求を処理します。 Front Door では、Front Door で管理されている TLS 証明書またはカスタム TLS 証明書を使用して TLS オフロードを実行します。
PoP では、Front Door プロファイルに指定された構成に基づいて、次のような多くの機能が実行されます。
- さまざまな種類の DDoS 攻撃からソリューションを保護する。
- Front Door WAF を使用して、既知の脆弱性について要求をスキャンする。
- Front Door の PoP に格納されており、要求に対して有効な場合は、パフォーマンスを向上させるために、キャッシュされた応答を返す。
- パフォーマンスを向上させるために応答を圧縮する。
- Front Door から直接、HTTP リダイレクト応答を返す。
- ルーティング アーキテクチャに基づいてトラフィックを受信する最適な配信元を選択する。
- ルール エンジンを使用して要求を変更する。
Front Door では、受信要求の処理を完了すると、クライアントに直接応答する (キャッシュされた結果を返す場合など) か、要求を配信元に転送します。
Front Door から配信元
Front Door では、Private Link を使用する方法とパブリック IP アドレスを使用する方法の 2 つの方法で、配信元にトラフィックを送信できます。
Front Door の Premium SKU では、Private Link を使用して一部の配信元の種類にトラフィックを送信することがサポートされています。 配信元用に Private Link を構成すると、トラフィックではプライベート IP アドレスが使用されます。 この方法を使用すると、配信元が特定の Front Door インスタンスからのトラフィックのみを受け入れるようにし、インターネットからのトラフィックをブロックできます。
Front Door の PoP では、パブリック IP アドレスを使用して配信元に要求を送信すると、新しい TCP 接続が開始されます。 この動作により、配信元サーバーには、クライアントではなく Front Door の IP アドレスから送信された要求が表示されます。
どちらの方法を使ってトラフィックを配信元に送信するにせよ、通常は、Front Door プロファイルからのトラフィックを想定するように配信元を構成し、Front Door を通過しないトラフィックをブロックすることをお勧めします。 詳細については、「Azure Front Door の配信元へのトラフィックをセキュリティで保護する」を参照してください。
応答の処理
Front Door の PoP では送信応答も処理されます。 応答処理には、次の手順が含まれる場合があります。
- 後続の要求を高速化するために、PoP のキャッシュに応答を保存する。
- ルール エンジンを使用して応答ヘッダーを変更する。
分析とレポート
Front Door ではすべての受信要求を処理しているため、ソリューションを通過するすべてのトラフィックを把握しています。 Front Door のレポート、メトリック、ログを使用して、トラフィック パターンを理解できます。
ヒント
Front Door を使用しているとき、一部の要求が配信元サーバーによって処理されない場合があります。 たとえば、Front Door の WAF によって一部の要求がブロックされ、他の要求用にキャッシュされた応答が返される場合があります。 ソリューションのトラフィック パターンを理解するには、Front Door のテレメトリを使用してください。
次のステップ
Front Door プロファイルを作成する方法について説明します。