このエントリは2019/07/252022/03/31現在の情報に基づいています。将来の機能追加や廃止により、記載内容との乖離が発生する可能性があります。
Azure Front Doorとは
CDN、WAF、L7 Load Balancerを提供するマネージドサービス。Application Gatewayと機能が重複するが、Front DoorはTraffic Managerと同様グローバルサービスであり、リージョンを跨いだフェールオーバーが可能(Application GatewayやAzure Firewallはリージョンサービス)。Azure CDNとも機能が重複するが、Front DoorではCDNの設定はほとんどできないため、細かく設定したいなどの要求があれば、Azure CDNを使うことになるはず。
2022/03/30一般提供を開始したStandardおよびPremium SKUは以下の発表の通り、
- Azure Front Door (classic)
- Azure CDN from Microsoft (classic)
- Azure Web Application Firewall (WAF)
を組み合わせたもの。これまでFront Doorと呼んでいたものは、Azure Front Door (classic) と名称変更されている。
Generally available: The new Azure Front Door – a modern cloud CDN service
https://azure.microsoft.com/updates/generally-available-the-new-azure-front-door-a-modern-cloud-cdn-service/
Introducing the new Azure Front Door: Reimagined for modern apps and content
https://azure.microsoft.com/blog/introducing-the-new-azure-front-door-reimagined-for-modern-apps-and-content/
グローバルサービスとリージョンサービス
前者はTraffic Managerと同様、リージョンを跨ぐことができるが、後者はリージョン内でサービスを提供する。
Global Service | Regional Service |
---|---|
Traffic Manager | Load Balancer Ignite 2020でRegional Load Balancing機能がPreviewとして利用できるようになっている https://docs.microsoft.com/azure/load-balancer/cross-region-overview |
Front Door | Application Gateway |
サービスの組み合わせや配置は以下のドキュメントが参考になる。
Azure のアプリケーション配信スイートでの負荷分散 / Load-balancing with Azure’s application delivery suite
https://docs.microsoft.com/azure/frontdoor/front-door-lb-with-azure-app-delivery-suite
Load Balancer
正常性プローブを使い、生存しているノードを把握した上で負荷分散する。負荷分散対象のエンドポイントへのアクセスは、AzureサービスであればFront Doorの背後ではMicrosoft Azureの内部ネットワークを通る(インターネットではない)。負荷分散方式は以下のドキュメント参照。
Front Door ルーティング方法 / Front Door routing methods
https://docs.microsoft.com/azure/frontdoor/front-door-routing-methods
Session Affinityを有効にすることもできる。
WAF (Web Application Firewall)
WAFでは、ポリシーにヒットした場合の挙動を設定できるようになっている。つまり、条件にヒットした場合に、トラフィックを抑止するのか、ログに書き込むだけにするのか、という設定が可能。

標準でルールを提供しているが、Azure Portal、PowerShellを使ってカスタムルールを作成できる。以下はGeoロケーションを使って日本からのアクセスを禁じるルールをAzure Portalで作成している例。

これをFront Doorに割り当てて、アクセスしてみると…
