タイトルはホッテントリメーカーで生成しました。内容とはあまり関係ないと思われます。
さてWindows Azure CDNが新しくなったので、試してみました。
目玉としては、
- Web/VMロールでCDNサポート
- HTTPSなエンドポイントをサポート
だと思うので(QueryStringでどうのこうのもありそうですが検証が大変そうなので今回は置いておきます)、それぞれ見てみようと思います。
CDNの設定
先にアプリケーションを準備しておきましょう。
適当にWebアプリ作るのはいいのですが、CDNで配信されるのは URLが /cdn 以下になります。
サービス定義ファイルで仮想パスを設定するか、アプリ内でフォルダを構成する必要がありますが今回は手抜きでデプロイしてからリモートで/cdnを手動で追加しました。
さてCDNを設定するには管理ポータルの「Hosted Services, Storage Accounts & CDN」内に「CDN」が増えてるのでクリックして「New Endpoint」を選択します。
ダイアログが表示されるので、設定するSubscriptionとホストサービス(もしくはStorage Account)を選択します。
Source URL for the CDN endpoint にあるURL以下のコンテンツがCDNに配信される対象となります。
あと忘れずに「Enable CDN」にチェックを付けて有効になるようにしましょう。
また「HTTPS」にチェックを付けることで、CDNなURLにHTTPSでアクセスすることができるようになります。
※Query Stringは理解が大変そうだったので保留
Createボタンをクリックすると、Informationが表示されます。
正常に作成されてEnabledになった後、実際に各地のCDNで利用可能になるまで60分かかるようです。(実際かかりました)
またホストサービスがなかったりするとないよーと警告でますので注意ください。
作成後は以下の様になります。
プロパティのDefault HTTP endpointに作成したCDNのホスト名が表示されます。このホスト名でアクセスするとホストサービスの/cdnなコンテンツのキャッシュに接続できます。
- ホストサービスのURL: http://<your hosted service>.cloudapp.net/cdn/sample.aspx
- CDNのURL: http://<your cdn endpoint>.vo.msecnd.net/sample.aspx
/cdn がCDNのエンドポイントのルートとなるため注意ください。
また以前のStorageのCDNと同様、CNAMEでカスタムドメインを登録することもできます。カスタムドメインを有効にするには登録後、ベリファイが必要なので要注意。
ただ、HTTPSの場合はカスタムドメインは非サポートなので要注意です。(つながると思いますが証明書エラーでるんじゃないかなぁ。ひょっとしたらつながらないかも知れない)
HTTPS時に提供される証明書は *.vo.msecnd.net なので、CNAMEだとホスト名が一致せず証明書エラーになります。
さて有効になるまでwktkして待ちましょう。
動作結果
まず通常のAzure上のホストサービスです。
/cdn でASP.NETなアプリが動作してます。
ではCDNなエンドポイントにつなぎます。
<ID>.vo.msecnd.net/ でアクセスできてることがわかると思います。
またHTTPSで接続した際も証明書エラー等無しでつながります。(証明書みると *.vo.msecnd.net で発行されていることがわかると思います)
さてレスポンスはというと。
CDNなし(Windows Azureホストサービス)
CDNあり( .vo.msecnd.net )
こんな感じです。全体的に早いのと、ネットワーク待機時間がかなり短いです。
CDNなEndpointにPINGをうつとだいたい10ms(TTLが54なのはちょっとだけ気になるかな?)
※ちなみに大阪から試しました。東京からPINGしてもらうとIPも異なるのでCDNなホストが違うと思われます。(若干応答時間もかかったようですが
とまぁこんな感じでうまくアプリケーションや静的コンテンツを置けば、以前よりお手軽にCDNが使えますね。
以前のようにStorageの管理をしなくてよくなるメリットもありますが、そこはまぁ要件次第で一長一短かなぁ。
とりあえず速報でした。








