このエントリはQiita Advent Calendar 2017 Microsoft Azureサービスいちから紹介 の12日目です。
ナレッジコミュニケーションの大柳です(@oyngtmhr)。
12日目はAzure Content Delivery Networkです。その名の通り、コンテンツ・デリバリー・ネットワークです。AkamaiやCloudFlare、クラウドだとAWSのCloudFrontが良く知られています。
世界中に分散されたエンドポイントにWebサイト、画像、動画などのコンテンツを配置することで、世界中のどこからアクセスしても、低レイテンシで快適にWebサービスを利用することが可能になります。
概要
Azure Content Delivery Networkは、Microsoft Azureが提供するコンテンツ・デリバリー・ネットワーク(CDN)です。
CDNにコンテンツをキャッシュすることが3つのメリットがあります。
・ユーザに近いところにコンテンツを配置することで、読み込みにかかる時間を小さくして、サービスの操作性を改善する。
・イベント実施時、大きなニュースの発表など際の瞬間的高負荷に対応したスケーリングができる。
・コンテンツをエッジサーバーから配信することにより、配信元サーバなどへのトラフィックを削減する。
Azure CDNはAkamaiとVerizonから提供され、目的や配信する地域に合わせて2社を選ぶことができますか
サービスとしては、以下の3つが提供されます。
・Azure CDN Standard from Akamai
Akamaiが提供。動画などのストリーミング配信にも対応する。
・Azure CDN Standard from Verizon、Azure CDN Premium from Verizon
Verizonが提供。独自ドメインのHTTPSでの配信にも対応する。Premiumになると、ルールエンジンによるURL書替などの処理、リアルタイム統計情報も提供される。
それぞれで提供されるサービスの違いは以下のようになります。
Azure Portalの「CDNのプロファイル」画面から引用
機能
・オリジン
Web Apps、Storage、Cloud Services、Media ServicesなどのAzureサービスに加えて、カスタムオリジンもサポートしており、任意の仮想マシンやオンプレ環境のリソースもCDNで配信させることができます。
https://blogs.msdn.microsoft.com/windowsazurej/2015/06/14/azure-cdn/
・圧縮
CDNでオブジェクトを圧縮して容量を削減してクライアントに配信することも可能です。圧縮を有効にすると、オリジンですでに圧縮されている場合は、CDNは圧縮したままスルーして配信し、未圧縮の場合はCDNで圧縮して配信します。圧縮するファイルタイプを指定することもできます。ただし、Azure CDN from Verizonの場合は128バイトより大きく1MB未満のファイルのみが圧縮されます。
圧縮を有効にした場合、Azure CDN from Akamaiは通常は反映は1分以内で完了、Azure CDN from Verizonは通常は反映は90分以内で完了します。
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-improve-performance
・トークン認証
参照元、IPアドレス、有効期限などの条件を埋め込んだトークンを発行してCDNにアクセスさせることで、特定の許可された利用者にのみコンテンツを参照させることが可能です。Azure CDN Premium from Verizonでのみ対応しています。
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-token-auth
・キャッシュの消去
TTLを待つことなく、エッジノードのキャッシュを手動で削除(Purge)することができます。CloudFrontでいうところのInvalidationです。エッジ上のキャッシュ削除には、Azure CDN from Verizonで約2~3分、Azure CDN from Akamaiで約7分かかります。
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-purge-endpoint
・資産の事前読み込み
大量の更新やアクセス増加が見込まれる場合に、事前にエッジノード上にコンテンツをキャッシュとしてロードすることもできます。 Azure CDN from Verizonのみのサービスになります。
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-preload-endpoint
その他
・ワイルドカードによるキャッシュ消去は、Azure CDN from Akamaiではサポートされていない。
・クエリ文字を含むURLは、クエリ文字列を無視する、クエリ文字列のあるリクエストはCDNエッジノードでキャッシュさせない、一意なクエリははキャッシュする、の3つのキャッシュ方法を選択できる。
・カスタムドメインもサポートする。
・DDoS攻撃に対する防御機能も有する。
料金
・転送量(GB単位)に応じて、ゾーンごとに定められた料金が課金されます。
・ソーン割り当ては以下の通り。
ゾーン 1: 北米、ヨーロッパ、中東およびアフリカ
ゾーン 2: アジア太平洋 (日本を含む)
ゾーン 3: 南米
ゾーン 4: オーストラリア
ゾーン 5: インド
・転送量は、南米→インド→オーストラリア→アジア太平洋(日本を含む)→北米・ヨーロッパ・中東およびアフリカの順に高い
まとめ
クラウドベンダから提供されるサービスは手軽に設定できる一方で、設定項目に制約があって痒いところに手が届かない、ということもありますが、Azure CDNの場合はかなり細かいところまで設定できそうです。また、AkamaiとVerizonがベースになっているので、もともとこれらのCDNを使っていた場合はとっつきやすく、Azureに移行することでポータルから管理も統一することができ、運用や管理面のコストが省けて良いのではないかと思います。