Azure Front Door:グローバル ロード バランシング
Azure Front Door を設定し、レイテンシベースのルーティングで異なるリージョンの複数のバックエンド プールに HTTP トラフィックを振り分けます。ヘルス プローブに失敗した場合は自動的にフェールオーバーします。
「Azure Front Door:グローバル ロード バランシング」はCoddyKit上の無料Azure Fundamentalsレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAzure Fundamentals学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Azure Fundamentalsコースには全4レッスンが含まれています。
Azure Front Door とは
Azure Front Doorは、レイヤー 7(HTTP/HTTPS)で動作するグローバル分散型のアプリケーション配信ネットワークです。エニーキャストネットワークを使用し、複数の Azure リージョンにある利用可能なバックエンドオリジンのうち最も高速なものへクライアントリクエストをルーティングします。トラフィックはパブリックインターネットを経由してオリジンまで移動するのではなく、最も近いエッジ PoP から Azure バックボーンに入ります。Front Door は、グローバル負荷分散、SSL オフロード、CDN キャッシュ、組み込みの Web Application Firewall を 1 つのサービスで提供します。
Azure Front Door Standard と Premium
Azure Front Door には 2 つのレベルがあります。Standardには、CDN キャッシュ、マネージド TLS を使用するカスタムドメイン、ルールエンジン、基本的な WAF が含まれます。Premiumでは、マネージドルールセット(Microsoft Default および OWASP ルールセット)を備えた高度な WAF、Bot 保護、セキュリティレポート、Private Link 統合(パブリック IP なしでプライベートエンドポイント経由でオリジンにトラフィックを送信)、Azure Defender 統合が追加されます。WAF と Private Link の機能を利用するため、ほとんどの本番 Web アプリケーションでは Premium を使用します。
Front Door の概念: オリジンとオリジングループ
Front Door では、オリジンはバックエンドサーバーを指します。App Service、パブリック IP、Blob Storage の静的 Web サイト、または任意の HTTP(S) エンドポイントをオリジンにできます。オリジンはオリジングループにまとめます。負荷分散と正常性プローブの設定は、オリジングループごとに構成します。たとえば、East US と West US の App Service バックエンドを 1 つのオリジングループに含めることができます。Front Door は、優先度、重み、または遅延に基づいてグループ内のリクエストをルーティングし、正常性プローブの結果に基づいて異常なオリジンを自動的に除外します。
# Create a Front Door profile (Standard tier)
az afd profile create \
--profile-name myFrontDoor \
--resource-group myRG \
--sku Standard_AzureFrontDoor正常性プローブとフェールオーバー
正常性プローブは、Front Door の PoP から各オリジンに定期的に送信される HTTP/HTTPS リクエストです。オリジンの遅延を測定し、正常に動作していることを確認します。プローブのパス、プロトコル、間隔、およびオリジンを異常と判定するまでに必要な連続失敗回数を設定できます。オリジンが正常性プローブに失敗すると、Front Door はそのオリジンをルーティングプールから自動的に除外し、新しいリクエストを残りの正常なオリジンに送信します。これにより、手動操作なしで自動フェールオーバーを実現できます。
# Add an origin group with health probe settings
az afd origin-group create \
--profile-name myFrontDoor \
--resource-group myRG \
--origin-group-name myOriginGroup \
--probe-path '/healthz' \
--probe-protocol Https \
--probe-interval-in-seconds 30 \
--sample-size 4 \
--successful-samples-required 3負荷分散方式
Front Door は、オリジングループ内で 3 つの負荷分散方式をサポートします。遅延ベースのルーティング(既定値)は、クライアントに最も近い PoP から測定した往復時間が最も短いオリジンに各リクエストを送信します。パフォーマンスを重視する場合に適しています。重み付けでは、割り当てた重みに基づいてトラフィックを分散します(例: プライマリに 80%、セカンダリに 20%)。カナリアデプロイに便利です。優先度では、最も優先度の高いオリジンにすべてのトラフィックを送信し、プライマリが異常になった場合のみ優先度の低いオリジンにフェールオーバーします。アクティブ・パッシブ構成の DR に適しています。
ルートとパスベースのルーティング
Front Door のルートは、ドメインと URL パスパターンをオリジングループにマッピングします。複数のルートを作成してパスベースのルーティングを実装できます。たとえば、/api/*をバックエンド API の App Service に、/static/*を積極的な CDN キャッシュを使用する Blob Storage オリジンに、/*を Web フロントエンドにルーティングできます。各ルートには、キャッシュ、圧縮、転送プロトコルに関する独立した設定があります。
# Create a route mapping a custom domain to an origin group
az afd route create \
--profile-name myFrontDoor \
--resource-group myRG \
--endpoint-name myEndpoint \
--route-name myRoute \
--origin-group myOriginGroup \
--patterns-to-match '/*' \
--forwarding-protocol HttpsOnly \
--https-redirect Enabledカスタムドメインと TLS
Front Door は、エンドポイントに関連付けた各カスタムドメインに対してマネージド TLS 証明書を提供します。証明書は DigiCert 経由で自動的にプロビジョニングされ、追加料金なしで有効期限前に自動更新されます。ドメインの所有権は、apex ドメインまたはサブドメインが Front Door エンドポイントを指す CNAME レコードを追加して検証します。Azure Key Vault に保存した独自の証明書を使用することもできます。Front Door はエッジ PoP で TLS を終端するため、オリジンで TLS を終端する場合と比べて TLS ハンドシェイクの遅延を削減できます。
ルールエンジン
ルールエンジン(Standard/Premium では Rule sets と呼ばれます)を使用すると、リクエスト属性に基づいてルーティング動作を変更できます。URL パス、クエリ文字列、リクエストメソッド、HTTP ヘッダー、地理的位置、デバイスの種類などを条件にできます。アクションには、URL のリダイレクト、別のオリジングループへの転送、リクエストまたはレスポンスヘッダーの変更、キャッシュ設定の上書きなどがあります。よくある用途は、オリジンに到達する前にリダイレクトルールを使用してすべての HTTP トラフィックを HTTPS にリダイレクトし、HTTPS を強制することです。
オリジン向け Private Link 統合
Premium レベルでは、Front Door はパブリックインターネットではなく Private Link 経由でオリジンに接続できます。これにより、App Service または Blob Storage のオリジンにパブリック IP は必要ありません。Front Door の PoP からのトラフィックは、Microsoft のプライベートバックボーンを経由して VNet 内のプライベートエンドポイントに到達します。ポータルまたは CLI で Private Link 接続要求を承認すると、Front Door とオリジン間のトラフィックがパブリックインターネットを経由しなくなるため、オリジンに受信ファイアウォール規則を設定する必要がなくなります。
セッションアフィニティ
セッションアフィニティ(スティッキーセッションとも呼ばれます)を使用すると、同じクライアントからのリクエストが、セッション中は常に同じオリジンにルーティングされます。Front Door は Cookie ベースの仕組みによってこれを実現します。最初のレスポンスでセッション Cookie を設定し、その Cookie を含む以降のリクエストを同じオリジンに固定します。セッションアフィニティを使用すると負荷を均等に分散できなくなる代わりに、状態が共有キャッシュやデータベースではなくオリジンサーバーにローカルで保存される場合のアプリケーション互換性を確保できます。
メトリックによる Front Door の監視
Front Door は Azure Monitor にメトリックを送信します。これには、総リクエスト数、オリジン正常性の割合、リクエストヒット率、オリジンの遅延、アクション別の WAF リクエスト数などが含まれます。これらを対象にメトリックアラートルールを作成すると、オリジンの正常性がしきい値を下回った場合や、WAF によるブロックが予期せず急増した場合に通知を受け取れます。Front Door では、Premium レベルに組み込みレポートも用意されており、地域別のトラフィック、リクエスト数の多い URL、WAF で一致したルールを確認できます。
クイックチェック
このレッスンで扱った Microsoft Azure Fundamentals (AZ-900) の概念について、理解度を確認します。
レッスンのまとめ
このレッスンでは、Azure Front Doorがエニーキャストネットワークと正常性プローブに基づくフェールオーバーを使用して、世界中で利用可能な最速のオリジンに HTTP トラフィックをルーティングすること、ルートとパスベースのルーティングによって異なる URL パスを異なるバックエンドに振り分けられること、そしてPremium レベルで Private Link オリジンと高度な WAF 機能が追加されることを学びました。次は、セキュリティのために Web Application Firewall を Front Door に関連付ける方法について学習します。
よくある質問
「Azure Front Door:グローバル ロード バランシング」レッスンは無料ですか?
はい。「Azure Front Door:グローバル ロード バランシング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Azure Fundamentalsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Azure Fundamentalsコースには全4レッスンが含まれています。
「Azure Front Door:グローバル ロード バランシング」で何を学びますか?
Azure Front Door を設定し、レイテンシベースのルーティングで異なるリージョンの複数のバックエンド プールに HTTP トラフィックを振り分けます。ヘルス プローブに失敗した場合は自動的にフェールオーバーします。 ブラウザで直接実行するハンズオンコードでAzure Fundamentalsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Azure Fundamentalsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAzure Fundamentalsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Azure Front Door:グローバル ロード バランシング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAzure Fundamentalsレッスンでコードを書いて実行できますか?
はい。すべてのAzure Fundamentalsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Azure CDN のプロファイルとエンドポイント
- Azure Front Door:グローバル ロード バランシング
- Front Door の Web Application Firewall
- CDN ルールによるパフォーマンスの最適化