Azure

Azure Static Web Appsのエンタープライズ グレードのエッジを有効化する

はじめに

Azure Static Web Appsにはエンタープライズ グレードのエッジを統合できる仕組みがあります。ここでいうエンタープライズグレードのエッジとは、Azure Static Web Apps、Azure Front Door、Azure Content Delivery Network (CDN) の機能をセキュリティで保護された 1 つのクラウド CDN プラットフォームに統合することと書かれています。

Azure Static Web Apps のエンタープライズ レベルのエッジ | Microsoft Learn
Azure Static Web Apps のエンタープライズ レベルのエッジ | Microsoft Learn

Azure Static Web Apps エンタープライズグレード エッジについて説明します。

docs.microsoft.com

これら3つの機能を統合することで、5つの機能を有効に利用できます。

  • 100 都市に及ぶ 118 か所以上のエッジ ロケーションでのグローバル プレゼンス。
  • エッジでのアセットのキャッシュ。
  • 分散型サービス拒否 (DDoS) 攻撃からの予防的保護。
  • エンド ツー エンドの IPv6 接続と HTTP/2 プロトコルのネイティブ サポート。
  • 最適化されたファイル圧縮。

キャッシュ機能の制御はstaticwebapp.config.jsonで行われるためポータルから設定することができません。現状、それしか設定できないようです。

様々な設定を行いたい場合には、エンタープライズ グレードのエッジを有効化するのではなく、手動でFront Doorを構成することをお勧めします。

注意:エンタープライズ グレードのエッジについてはプレビューになります。その為、今後機能の仕様変更や削除が行われる場合があります。

条件

以下の条件でStatic Web Appsが構築されている必要があります。

  • プランがStandardである
  • カスタムドメインが割り当てるられている
  • プライベートエンドポイントを設定していない

下記のようなエラーがでます。

構築

設定はいたって簡単です。

有効化にチェックを入れて保存します。

すぐに反映されると思います。

これ以上、ポータルに変化はありません。

実際に有効化されているかを確認します。

 

digコマンドで調査します。ドメインに割り当てられているCNAMEからFront Doorが利用されていることが分かります。

<pre>$ dig webapp1.server01.pw</pre>

; <<>> DiG 9.16.1-Ubuntu <<>> webapp1.server01.pw
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41924
;; flags: qr rd ad; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;webapp1.server01.pw. IN A

;; ANSWER SECTION:
webapp1.server01.pw. 0 IN CNAME white-sand-0f3e5b10f.1.azurestaticapps.net.
white-sand-0f3e5b10f.1.azurestaticapps.net. 0 IN CNAME staticwebappsc50f287b541e41e0857f4b0efa74c528.z01.azurefd.net.
staticwebappsc50f287b541e41e0857f4b0efa74c528.z01.azurefd.net. 0 IN CNAME star-azurefd-prod.trafficmanager.net.
star-azurefd-prod.trafficmanager.net. 0 IN CNAME dual.part-0018.t-0009.t-msedge.net.
dual.part-0018.t-0009.t-msedge.net. 0 IN CNAME part-0018.t-0009.t-msedge.net.
part-0018.t-0009.t-msedge.net. 0 IN A 13.107.246.46
part-0018.t-0009.t-msedge.net. 0 IN A 13.107.213.46

;; Query time: 410 msec
;; SERVER: 172.18.64.1#53(172.18.64.1)
;; WHEN: Sun May 08 03:38:57 JST 2022
;; MSG SIZE rcvd: 562</pre>

 

統合されていないStatic Web Appsを確認します。こちらはFront Doorを利用していないことが分かります。

<pre>$ dig purple-mud-070068e0f.1.azurestaticapps.net

; <<>> DiG 9.16.1-Ubuntu <<>> https://purple-mud-070068e0f.1.azurestaticapps.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8412
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;https://purple-mud-070068e0f.1.azurestaticapps.net. IN A

;; ANSWER SECTION:
https://purple-mud-070068e0f.1.azurestaticapps.net. 600 IN CNAME azurestaticapps1.trafficmanager.net.
azurestaticapps1.trafficmanager.net. 60 IN CNAME msha-slice-1-hk1-0.msha-slice-1-hk1-0-ase.p.azurewebsites.net.
msha-slice-1-hk1-0.msha-slice-1-hk1-0-ase.p.azurewebsites.net. 30 IN CNAME waws-prod-hk1-9687de8d.sip.p.azurewebsites.windows.net.
waws-prod-hk1-9687de8d.sip.p.azurewebsites.windows.net. 300 IN A 52.175.64.109

;; Query time: 130 msec
;; SERVER: 172.18.64.1#53(172.18.64.1)
;; WHEN: Sun May 08 03:42:55 JST 2022
;; MSG SIZE rcvd: 278</pre>

また、気になった点としてStatic Web Appsにカスタムドメインではなく直接アクセスした場合です。これはCDNと統合されているため起こる問題です。何か気持ちわるいですね。

当然これはエンタープライズ グレードのエッジを有効化しない場合には起きない現象です。

まとめ

エンタープライズ グレードのエッジの有効化を試してみました。パフォーマンスやDDosの検証が行えないので、あまり有効化の恩恵を確認することはできませんでした。しかしエンタープライズ グレードのエッジはFront Door、CDNなど管理したくないという環境向けだと思います。また、費用に関しても月単位で課金されることや、機能別に考えた場合、手動で設定するよりも割高になる場合もあると考えられます。状況にあった利用方法を行う必要があると思います。

 

 

-Azure
-