しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

新しくなった Azure CDN を試してみた

どうやら昨夜は Azure 周りで GA 祭りが行われていたようですね。土下座ポイントも貯まったと聞きます。

Azure Update (2015.12.03) | ブチザッキ

そんな中、Azure 界の抱かれたい男 No.1 かつ、世界の RD こと @kosmosebi に Azure CDN について調べろと脅されたので、震えながら新しくなった Azure CDN についてまとめることにします。

とりあえずポータルから CDN Profile を作成してみます。価格情報は今は壊れているようです。

CDN Profile は空っぽの入れ物を作るだけなので、作成後にエンドポイントを追加していきます。Origin Type は Azure のサービス以外にもカスタムな Origin を指定できるようになってます。

地味に Origin Path はナイスな機能な気がします。Web Apps 全体を CDN に入れるのではなく、Content ディレクトリを CDN のルートとして扱うことが簡単に出来そうですね。HTTP(S) のポートを指定できるようになっているのも新しい機能です。

エンドポイントを作成した後は HTTP 圧縮やクエリ文字列の扱いなど、少しだけ設定が用意されています。

実際に作成してから利用可能になるまでは相変わらず時間がかかるようで、準備が完了するまでは謎のページが表示されます。EdgeCast を使っている点は変わらないようです。

nslookup を叩いてみると、これまでの CDN と同じエンドポイントを見ていました。Premium も同様です。

機能面として、新しくなった Azure CDN では、やっとキャッシュされたコンテンツの Purge が出来るようになりました。あまりにも遅すぎましたが、実装されたのでまあ我慢しましょう。

しかし、現時点では Purge All にチェックを入れるとエラーになるようです。なんじゃそりゃ。

Content Path を指定して Purge する場合は / から始めないとエラーになります。ツールチップでは / 無しで書いてあるのでエラーになるのマジ酷いと思いました。ポータルのバグですね。*1

ワイルドカードが使えるので、Purge All を実行する場合は手動で /* と入力すれば良いみたいです。ブログには "instantly" と書いてあったので、実際にキャッシュが Purge されるまでの時間を適当に調べたところ、大体 1 分ぐらいはかかるようです。

割と頑張っている方だと思いますが、Fastly の Instant Purge と比べると天と地ほどの差があります。

Premium では Rule Engine を使って CDN エッジサーバーでの挙動を変えることが出来るようですが、正直なところ難易度が高く感じました。

GUI でポチポチとルールを作れるのは良いですが、純粋に情報が不足していると感じます。ドキュメントは用意されていますが、一般的に多く使われるであろうサンプルが欲しいですね。

Azure CDN Rules Engine Match Condition and Feature Details | Microsoft Learn

多分、組み合わせるとクッキーの有無でキャッシュキーを変えたり、HTTP レスポンスヘッダーを書き換えたりできるみたいなので、情報が揃ってくることに期待します。

*1:今は直ってました