Azure Static Web Apps (以下 SWA) の Enterprise-grade edge はハッキリ言うと、マネージドの (ユーザーのサブスクリプション外にある) Azure Front Door (以下 AFD)連携です。
SWA は一つのリソースでいくつかのリージョンにコンテンツをデプロイしていて、リソース内部に持つ Traffic Manager (以下 TM) を使って、コンテンツ配信に最適なリージョンに振り分けてます。
で、今回パブリック プレビューとなった Enterprise-grade edge では、この SWA の前段にある TM をマネージドの AFD に置き換えているようです。
絵で描くとこれ↓が、
こう↓なります。
AFD は CDN なので、SWA が配信するコンテンツを世界各地のエッジ サーバーでキャッシュできますし、AFD 自身も TM を中に持っているので、クライアントの場所によって (ネットワーク的に) 最も近いエッジ サーバーからコンテンツを配信できるので、コンテンツの配信速度の向上が見込めます
やってみる
ドキュメントによると、いくつか事前に設定が必要です。
- カスタム ドメイン (TTL が 48 時間未満) をSWA に設定
- SWA のプランを Standard に
- 対象の Azure サブスクリプションにて、
Microsoft.CDN
リソース プロバイダーを再登録
あとは、Azure ポータルで SWA の [Enterprise-grade edge] というブレードを開いて有効化するだけです。
ちなみに、Free プランの場合は [Enterprise-grade edge] ブレードがグレー アウトして選択できません。 Standard プランでもカスタム ドメインを設定していない場合は、以下のエラーが出るので、キチンとカスタム ドメインは設定しましょう。
Azure CLI で有効化する場合は、事前に enterprise-edge
という拡張が必要になるので、事前に下記コマンドでインストールしておきましょう。
az extension add -n enterprise-edge
確認してみる
まず Enterprise-grade edge 有効化前の名前解決結果です。
SWA に設定したカスタム ドメイン (swa-std.■■■.net
) に対して nslookup を実行すると、
という順序で CNAME を追っていき、最終的にどこか (恐らく最寄りの) の Web Apps の IP アドレスに辿りつきます。
次に、Enterprise-grade edge を有効化して、同じカスタム ドメインに対して nslookup を実行してみます。
- SWA の既定のドメイン
- マネージドの AFD
- AFD 用の TM
- どこかのエッジ サーバー
という名前解決の流れになり、AFD が提供するエッジ サーバーの IP アドレスに辿りつくわけです。
実際にここで得られた IP アドレスを、Azure の IP アドレスリストと照合してみると、AzureFrontDoor.Frontend
というタグが付いたグループに含まれることが確認できるので、興味のある方はこちらから。
# が、どのリージョンかまでは追えなかった。
価格
最後のお値段ですが、ひと月&一アプリ当たり $17.52 課金されるようです。
おまけ
Enterprise-grade edge の有効/無効はポータルから何度もできますが、無効化した直後に SWA からカスタム ドメインを削除すると、一時的にロックに近い状態になります。
こうなると、1時間ほど再有効化ができなくなるのでご注意ください。
# これでリソース壊しかけました