マルチCDN


マルチCDNとは、複数のCDNを使い分ける利用方法です。

実装

一般には、CDNとは独立した専用のGSLBによりCDN切替を行います。また、マルチCDNの実装レベルは以下に分類されます:

  • 方式
    • 手作業
    • 自動(システム)
  • 切替単位
    • ユーザ側
      • 国単位
      • AS単位
    • CDN側
      • CDN全体
      • 地域単位

普及度

Dan Rayburnによる2014年のアンケート調査によると、マルチCDN(単純に複数CDNとの契約を持つ場合も含む)の使用率は以下となります(年間契約額はUS$1を100円と換算):

年間契約額(万円) 回答数 マルチCDN利用率
10,000~ 32 56%
5,000~10,000 39 64%
2,500~5,000 67 67%
~2,500 460  データなし

目的

  • ベンダロックインの排除
    • 複数のCDNと契約することにより、価格交渉力を強化する
  • CDNの冗長化
    • 特定のCDNがダウンした場合、他のCDNに切り替える
    • CDNと言えども、局所的なダウンは頻繁に発生しており、場合によってはその局所的なダウンが長期化する場合もある。また、致命的な(全域的な)CDNのダウンも発生している
  • 自社配信(CDN)の一時的な配信キャパシティ強化
    • 自社配信ではキャパシティが足りないときに、CDNを利用する
  •  地理的分散の強化
    • 全世界に最良のCDNは存在せず、国単位・ISP単位で最良のCDN事業者が存在する
      • 中国:国策的に中国資本のCDNが優位(外資CDN事業者は中国内におけるサーバ展開を制限されている)
      • 韓国:韓国由来のCDNが優位(歴史的にドメスティックなCDN事業者が強い)
      • 米国:ISPが自社網内に独自CDNの展開をすすめようとしている

ユースケース

具体的なユースケース(設定例)としては以下のようなものがあります:

ラウンドロビン・重み付ラウンドロビン

複数のCDNをある割合で使用します。最も単純な複数CDNの利用方法になります。

ベストパフォーマンス

最もパフォーマンスの良いCDNを使用します。パフォーマンスの基準としては以下の2種類があります:

  • レイテンシ
  • 配信速度

パフォーマンス制約のもとの最安CDN

あるパフォーマンス制約(例:平均配信速度がxKbps以上)の元で、もっとも安いCDNを使用します。速度よりも費用が重要な用件にフィットします。

国別切り替え

国単位で使用するCDNを使用します。利用シーンとしては以下のようなものが考えられます:

  • 法規制(中国ICP規制)がある場合
  • コンテンツの配信先規制がある場合(映画など)

バックアップ

定常利用しているCDNがダウンした場合に、バックアップCDNを使用します。利用シーンとしては次のようなものがあります:

  • 定常利用CDN:安価だが安定性にかけるCDN
  • バックアップCDN:安定している完全従量のCDN

オーバーフロー

定常利用しているCDNの利用量が超過した場合に、セカンダリのCDNを使用します。利用シーンとしては次のようなものがあります:

  • 定常利用CDN:超過料金の高いCDN
  • セカンダリCDN:完全従量のCDN

また、複数のCDNを使用している場合、CDN間の流量調整として超過を避ける設定として使われることがあります。

バースト時のみ

定常的にはWebホスティングを利用し、バーストトラフィックの発生時のみにCDNを使用します。

  • 定常利用:ホスティング
  • バースト時:CDN

ただし、以下のような制限があるため、ある程度のトラフィックを処理可能なオリジンサーバが必要です:

  • CDN適用にはタイムラグ(30秒程度)がある。CDN適用までのトラフィックはオリジンサーバで処理する必要がある。
  • 途中からのCDN適用ができないクライアントも存在する。そのため、ある程度のトラフィックを処理できる必要がある。

コスト(デメリット)

  • マルチCDNのコスト
    • 手動もしくは簡便なCDN切り替えの場合、必要コストは低いですが、高度なCDNモニタリング機能を持つマルチCDNサービスを購入した場合、一般にその料金は高くなります。
  • 一般的には、単純な静的コンテンツ配信しかできない
    •  使用する機能は、結合するCDNのうち最も低い機能に抑えられます
  • マルチCDN自体が単一障害点
    • 一般のCDN障害においても、大規模なものはGSLB障害です。そして、マルチCDNもその実態はGSLB運用であるため、障害が発生した場合大規模になります