この記事はFIXER Advent Calendar 2021(https://adventar.org/calendars/6837)16日目の記事です
AzureCDNについて、料金の考え方がややこしかったので知ってる範囲で簡単にまとめてみようと思います。間違ったこと書いてたら教えてください。
クライアントとCDNエッジサーバー間の通信料金
CDNエッジサーバーは、通信したコンテンツをキャッシュして格納するサーバーです。サーバーは世界各地にあり、クライアントは最も距離が近いサーバーを使用します。
日本だと東京と大阪とで計2つあります。
場所による配信料金の違い
クライアントの所在地ではなく、CDNエッジサーバーの場所に応じて料金が変動します。
いくつかゾーンがあって料金もゾーン毎に異なります。日本の場合ゾーン2に該当します。
顧客が自国内の大多数を占めるならあまり気にするところではありませんが、自国以外の顧客が多い場合は覚えておくといいかと思います。
参考
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-billing#what-is-a-billing-region
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-billing#how-are-delivery-charges-calculated-by-region
https://azure.microsoft.com/ja-jp/pricing/details/cdn/
圧縮機能
CDNにはコンテンツの圧縮機能があります。クライアントとCDNエッジサーバー間の料金は良いお値段になるので、この機能を使用することで節約することが可能です。
ただし、動画配信には有効的ではないので注意が必要です。既定の設定としてxmlファイルの圧縮はしてくれるのですが、動画自体はmp4ファイルなど既に圧縮されているため、CDNでの圧縮が期待できません。
画質が落ちることを許容できるなら、ファイルサイズを小さくすることで全体的なキャッシュ量を減らすことはできます。
参考
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-improve-performance
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-troubleshoot-compression
TTL
料金削減を目的とするならば、できるだけ長い期間設定することをおすすめします。
キャッシュミスをなるべく減らすことが料金節約に繋がります。
キャッシュミスとは
キャッシュミスは、ユーザーがコンテンツをリクエストした際に、キャッシュサーバー上にキャッシュが存在しない場合に発生します。これは有効期限が切れていた、過去に一度もそのコンテンツがリクエストされていない、キャッシュスペースがいっぱいになって古いキャッシュコンテンツが削除された場合などに発生します。
引用元:https://docs.fastly.com/ja/guides/how-caching-and-cdns-work
参考
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-billing#how-much-transfer-activity-occurs-to-support-the-cache
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-billing#how-do-i-manage-my-costs-most-effectively
CDNエッジサーバーと配信元間の通信料金
ここではCDNエッジサーバーとAzueMediaService間のケースを主に記載します。
CDN統合で指定したCDNのSKUで料金が変わってきます。
Microsoft CDN
Microsoft CDNは対象となるAzureリソースを配信元にしている場合、CDNエッジサーバーとの転送料金が無料になります。あくまでCDNエッジサーバーと配信元の通信が無料になり、クライアントとCDNエッジサーバー間の通信が無料になるわけではないので注意が必要です。
また、メディアストリーミングに最適化がされてないので動画配信には不向きです。
料金をなるべく抑えたい場合かつ、動画配信以外の目的の場合に検討されるCDNだと思います。
参考
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-billing#which-origin-services-are-eligible-for-free-data-transfer-with-azure-cdn-from-microsoft
Verizon CDN、Akamai CDN
Microsoft CDNとは違い、Verizon CDNと Akamai CDNは配信元がAzureリソースでも通信料が無料になりません。とはいえ、CDNエッジサーバーで通信はほぼキャッシュされるので、かかる費用は少なめです。
Verizon CDNはStandardとPremiumがありますが、そこまで差はないので料金を抑えるのであればStandardでいいと思います。
参考
https://azure.microsoft.com/ja-jp/pricing/details/bandwidth/
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-features
まとめ
CDN難しいです。