Cloud Service
Azure Front Door / CDN
Microsoft のグローバルエッジネットワークから配信する CDN + グローバル L7 ロードバランサ。エニーキャストで最寄りの POP に収容し、キャッシュ・WAF・SSL オフロード・ヘルスプローブによるフェイルオーバーを担う。AWS の CloudFront に相当。
- 1.CDN 兼グローバル L7 ロードバランサ。AWS の CloudFront 相当。
- 2.最寄り POP でキャッシュ・TLS 終端・WAF をまとめて処理。
- 3.複数リージョンの裏側を束ね障害時に自動フェイルオーバー。
解決する課題
- 遠いユーザーにも静的・動的コンテンツを速く届けたい(エッジキャッシュ+バックボーン経由の高速化)
- 複数リージョンのバックエンドを1 つのグローバルエンドポイントで束ね、障害時に自動フェイルオーバーしたい
- 世界配信でも HTTPS(証明書の自動管理)と WAF による L7 防御を担保したい
- オリジン(Blob Storage / App Service / 任意の HTTP サーバー)の負荷とコストを下げたい
主要概念と用語
- プロファイル(Front Door profile): 設定全体の入れ物。Standard / Premium の 2 SKU があり、Premium は Managed Rules(マネージド WAF ルールセット)や Private Link 接続が使える
- エンドポイント:
<name>.z01.azurefd.netのような配信用ホスト名(エニーキャスト) - ルート(Route): パスやドメインの条件に対し、どのオリジングループへ・どうキャッシュするかを決める設定単位(CloudFront のキャッシュビヘイビア相当)
- オリジングループ / オリジン: 配信元のまとまりと個々のバックエンド。優先度(priority)と重み(weight) で振り分け、ヘルスプローブで健全性を判定
- POP(Point of Presence)/ エッジ: キャッシュと TLS 終端を行う Microsoft の拠点
- キャッシュ / キャッシュキー: クエリ文字列の扱い(無視 / 含める / 指定キーのみ)や圧縮(gzip / brotli)を制御
- ルールエンジン(Rules Engine): ヘッダ書き換え・リダイレクト・キャッシュ上書きなどをエッジで適用
- Web Application Firewall(WAF)ポリシー: マネージドルール(OWASP Core Rule Set / Bot Manager)とカスタムルール、レート制限
- カスタムドメイン / マネージド証明書: 独自ドメインに対し AzureがTLS 証明書を自動発行・更新
仕様・制限・クォータ
- HTTPS は AFD マネージド証明書(無料・自動更新)か、Key Vault に持ち込んだ独自証明書(BYOC) を選択
- HTTP/2 に対応(クライアント〜エッジ間)。gzip / brotli 圧縮をサポート
- キャッシュパージ(Purge) でエッジの古いコンテンツを即時無効化(パス指定 / ワイルドカード
/*/ 全消去)。キャッシュキーの単位は「ルート単位」 で制御 - TLS は既定で TLS 1.2 以上。エニーキャストにより 1 つの IP が世界中の POP にアドバタイズされる
- Standard と Premium で利用可能機能が異なる(Premium のみ Managed WAF ルール・Private Link オリジン・Bot 保護の上位機能)
- 1 プロファイルあたりのエンドポイント数・ルート数・カスタムドメイン数などにサブスクリプション単位のクォータがある(必要に応じて引き上げ申請)
内部の仕組み
ユーザーの DNS 解決はエニーキャストにより、ネットワーク的に最も近い Microsoft の POP に誘導されます。POP で TCP/TLS を終端(SSL オフロード) し、キャッシュ可能なルートならエッジのキャッシュを確認します。
- キャッシュヒットなら即座に返却。ミスならオリジンへ取りに行き(オリジンフェッチ)、以後キャッシュ
- オリジンへの通信は公衆インターネットではなく Microsoft グローバルバックボーンを経由するため、動的(非キャッシュ)コンテンツでも遅延・スループットが改善しやすい
- オリジングループ内は優先度→重みで選択され、ヘルスプローブが異常を検知すると次の優先度のオリジンへフェイルオーバー
- レイヤ 7 で動作するため、パス / ヘッダ / クエリに基づくルーティングやルールエンジンによる書き換えが可能
キャッシュ TTL が長いと古いまま配信されます。即時反映したいなら キャッシュパージ(az afd endpoint purge)、またはファイル名にハッシュを付けて別 URL にする運用が定番。TTL はオリジンの Cache-Control ヘッダ、またはルールエンジンの「キャッシュ有効期間の上書き」で制御します。
設計パターン / ベストプラクティス
- Blob Storage(静的サイト) + Front Door で静的サイト/メディアを安全・高速配信。Premium なら Private Link でストレージを非公開のまま接続
- マルチリージョンの App Service / AKS を 1 つのオリジングループに束ね、優先度でアクティブ-スタンバイ、重みでアクティブ-アクティブを実現
- 静的はキャッシュ TTL を長く、動的(API)はキャッシュ無効にしてルート単位で最適化
- WAF ポリシー(マネージドルール + レート制限) をエンドポイントに関連付けて L7 防御
- オリジンの直接アクセスを遮断: オリジン側で Front Door からのトラフィックのみ許可(
X-Azure-FDIDヘッダ検証やサービスタグAzureFrontDoor.Backendでの制限、または Private Link)
運用・監視
- Azure Monitor / メトリクス: リクエスト数、キャッシュヒット率、4xx/5xx、オリジンレイテンシ、バックエンド健全性を監視
- アクセスログ / WAF ログ / ヘルスプローブログを Log Analytics / Storage / Event Hub に送って分析
- ヒット率が低い → クエリ文字列の扱いやキャッシュ TTL、
Varyヘッダ、ルート設定を見直す - オリジンが断続的に落ちる → ヘルスプローブの間隔・パス・プロトコルと、オリジン側の許可設定を確認
コスト
| 課金要素 | Standard | Premium |
|---|---|---|
| 基本料金 | プロファイル基本料金(低め) | プロファイル基本料金(高め) |
| データ転送(送信) | ゾーン別の GB 単価 | ゾーン別の GB 単価 |
| リクエスト | 100 万リクエスト単位で課金 | 100 万リクエスト単位で課金 |
| WAF(マネージドルール) | カスタムルールのみ | マネージドルール + Bot 保護込み |
| Private Link オリジン | 非対応 | 利用可(追加料金) |
- 課金は 基本料金 + 送信データ転送(GB)+ リクエスト数が中心。データ転送は転送先の地域ゾーンで単価が異なる
- エッジキャッシュでオリジンへのフェッチが減るため、オリジン側の下り転送・処理コストも下がる
- WAF を本格的に使うなら Premium 一択(Standard はマネージドルール非対応)。要件が静的配信主体で WAF 不要なら Standard で十分
セキュリティ
- HTTPS 強制 / HTTP→HTTPS リダイレクトをルートで設定し、TLS 1.2 以上を維持
- WAF ポリシーでマネージドルール(OWASP / Bot Manager)+ カスタムルール + レート制限による L7 攻撃・ボット緩和
- 証明書はマネージド(自動更新) か Key Vault 管理の BYOC。秘密鍵は Key Vault で保護
- オリジン保護: Private Link(Premium)または
X-Azure-FDID検証 / サービスタグでオリジンへの直接アクセスを遮断 - DDoS は Microsoft のグローバルネットワークで L3/L4 を吸収、Front Door の WAF で L7 を緩和
Front Door の WAF を入れても、オリジン(App Service / Storage / VM)が公衆インターネットに直接公開されたままでは、攻撃者は Front Door を迂回してオリジンを直撃できます。必ず Private Link、または X-Azure-FDID ヘッダ検証 / サービスタグ AzureFrontDoor.Backend での IP 制限でオリジンへの直接アクセスを塞いでください。
関連サービス・比較(AWS との対応)
| 観点 | Azure Front Door | Amazon CloudFront |
|---|---|---|
| 位置づけ | CDN + グローバル L7 ロードバランサ | CDN(配信主体、エッジ) |
| 配信単位 | プロファイル / エンドポイント / ルート | ディストリビューション / ビヘイビア |
| エッジ処理 | ルールエンジン | CloudFront Functions / Lambda@Edge |
| グローバル負荷分散 | オリジングループ(優先度/重み・ヘルスプローブ) | 原則 Route 53 や Global Accelerator と併用 |
| WAF | Front Door WAF ポリシー(統合) | AWS WAF を前段に関連付け |
| 証明書 | AFD マネージド証明書 / Key Vault(BYOC) | ACM(us-east-1) |
| キャッシュ無効化 | Purge(パス/ワイルドカード/全消去) | Invalidation(月1,000パス無料) |
- Front Door は CDN とグローバル L7 ロードバランサが一体である点が特徴。CloudFront は配信主体で、オリジンフェイルオーバー機能はあるものの、本格的なグローバルルーティングは Route 53 / Global Accelerator と組み合わせるのが一般的
- なお Azure には別途 Azure CDN(Microsoft/Edgio 等のプロファイル) や、リージョン内 L7 の Application Gateway、L4 の Traffic Manager(DNS ベース)/ Load Balancer があり、用途で使い分けます
ハンズオン / CLI例
# リソースグループを作成
az group create --name demo-rg --location japaneast
# Front Door プロファイル(Standard)を作成
az afd profile create \
--resource-group demo-rg \
--profile-name demo-afd \
--sku Standard_AzureFrontDoor
# 配信用エンドポイントを作成
az afd endpoint create \
--resource-group demo-rg \
--profile-name demo-afd \
--endpoint-name demo-endpoint \
--enabled-state Enabled
# オリジングループとオリジン(例: 静的サイト/任意のHTTPホスト)を作成
az afd origin-group create \
--resource-group demo-rg \
--profile-name demo-afd \
--origin-group-name demo-origins \
--probe-request-type GET --probe-protocol Https \
--probe-interval-in-seconds 120 --probe-path "/" \
--sample-size 4 --successful-samples-required 3 \
--additional-latency-in-milliseconds 50
az afd origin create \
--resource-group demo-rg \
--profile-name demo-afd \
--origin-group-name demo-origins \
--origin-name demo-origin \
--host-name www.contoso-origin.com \
--origin-host-header www.contoso-origin.com \
--priority 1 --weight 1000 \
--https-port 443 --enabled-state Enabled
# ルートを作成(HTTPS 強制 + キャッシュ有効)
az afd route create \
--resource-group demo-rg \
--profile-name demo-afd \
--endpoint-name demo-endpoint \
--route-name demo-route \
--origin-group demo-origins \
--supported-protocols Https \
--https-redirect Enabled \
--forwarding-protocol HttpsOnly \
--link-to-default-domain Enabled \
--enable-caching true \
--query-string-caching-behavior IgnoreQueryString
# デプロイ後、エッジキャッシュを即時パージ
az afd endpoint purge \
--resource-group demo-rg \
--profile-name demo-afd \
--endpoint-name demo-endpoint \
--content-paths "/*"
Azure Service
Azure Front Door / CDNを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ネットワーキング
比較で見る軸
クラウド: Azure / カテゴリ: ネットワーキング / 難易度: intermediate
導入後に効く点
最寄り POP でキャッシュ・TLS 終端・WAF をまとめて処理。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Azure
- カテゴリ
- ネットワーキング
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- performance / security / reliability / cost
判断チェックリスト
- 自社の用途が「ネットワーキング / performance」に近いか確認する。
- 強みである「CDN 兼グローバル L7 ロードバランサ。AWS の CloudFront 相当。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。
他クラウドの同等サービス
役割が近いサービスです。設計の置き換えや比較検討の参考に。