動画の多人数同時配信で必要になるCDNとは?

CDNという単語をご存知でしょうか?
コンテンツデリバリーネットワーク(Contents Delivery Network)の略語となっており、インターネット上のサーバーに保管されているデータを、多数のユーザーに同時に転送する場合に必要となってくる技術(サービス)です。

動画についても例外ではなく、10名程度が動画を同時に見るぐらいであれば特別なサーバーの準備は必要ありませんが、数百人や数千人、数万人の同時視聴が予想される場合は、CDNを利用しないとユーザーはまともに動画を見ることができません。

本稿では、CDNについての基本的な解説をしたいと思います。


同時視聴とは?

まずは「同時視聴」というのがどういった状況なのかを明確にしておきましょう。
同時視聴とは、「複数のユーザーに対して同時に、サーバーから動画データが転送されて続けている状態」です。

ストリーミング方式であれば、動画の再生時間中ずっと動画データを少しずつ転送し続けます。(10分の動画の場合は10分間データ転送が続く)
プログレッシブダウンロード方式であれば、通常のデータ転送とおなじで、許される限りのスピードで動画データを転送します。(10分の動画でも1分で転送できる場合もある)

なお、ストリーミング、プログレッシブダウンロードの違いや、メリット・デメリットについては当ブログのこちらの記事をご覧ください。

なぜ、同時視聴者が増えると一般的なサーバーでは配信が難しくなるのか

本題に戻りましょう。

一般的なインターネット上のサーバーは、コンピューターに通信回線が1本刺さっているというようなものになっています。

レンタルサーバーなどの場合だと、100Mbpsの通信速度がでる回線を、複数のサーバーでシェアして利用しています。

SnapCrab_NoName_2016-7-22_17-28-7_No-00
今回の説明では分かりやすくするために、サーバーに刺さっている回線が100Mbpsで、その回線を独占できるとします。

実際は100Mbps占有サーバーは費用が高いです。

SnapCrab_NoName_2016-7-22_17-32-17_No-00
YouTubeのHD動画と同じレベルの動画を、このサーバーから配信した場合どうなるでしょうか。

YouTubeのHD動画は、配信するのにひとりあたりおおよそ2Mbpsの帯域を利用します。
ひとりが動画を視聴すると100Mbpsの回線のうち2Mbps分の帯域を使うわけですから、単純計算で50人の方が同時に動画を見られることになります。

では100人の方が同時に視聴を行った場合どうなるでしょうか?
ユーザー1名あたりが使える帯域は、1Mbpsになります。
この場合も全く見られなくなるわけでは無さそうですが、動画が途中途中でとまったり、再生が始まるまでに待たされたり、画質が悪くなったりということが起こります。

1000人になるとどうでしょうか。
こうなると一人が利用できる帯域が0.1Mbpsとなり、とても動画が見られる状況ではありません

このような場合、サーバーにつながっている回線を太くする、例えば1Gbpsのものに変えるなどの対応が考えられます。
しかし、2000人同時視聴になったらどうするのか、1万人同時視聴になったらどうするのか、となっていき、結局これではいたちごっこです。

CDNのしくみはどのようなものか

インターネット放送の同時視聴の最高記録は1400万人です。延べ人数ではなく、同時視聴で1400万人をどのようにしてさばいたのでしょうか。

こういった時に利用されるのがCDNになります。

CDNを利用して動画配信を行う場合、ユーザーに転送したい動画のデータを、オリジナルのサーバーからエッジサーバーと言われる多数のサーバーにコピーします。

先ほど書いた例では、50人に対してなら普通に動画配信ができるスペックのサーバーでした。

これを、50人に対して動画配信をするのではなく、50台のエッジサーバーに動画データを配信(コピー)します

エッジサーバーにも回線が刺さっており、それぞれ50名に対して動画配信ができるとします。
そうすると、「50×50=2500名」に対して、スムースに動画の同時配信ができることになります。

SnapCrab_NoName_2016-7-22_17-42-6_No-00

オリジナルサーバーから50台のサーバーに転送し、さらに50台のサーバーに転送し、それらのサーバーがユーザーに対してデータを配信する場合だと、上記のさらに50倍までの同時視聴が可能になりますね。この場合12万5千人まで同時視聴が可能になります。

代表的なCDN提供企業

CDNは上記のようなことを行うためのネットワークを提供してくれるサービスです。
代表的な企業は、

  • アカマイテクノロジーズ
  • Amazon CloudFront
  • CDNetworks
  • Limelight Networks

などがあります。
これらの会社は、世界中に大量のエッジサーバーを抱えており、最大手のアカマイテクノロジーズの場合は17万台以上のサーバーを抱えているそうです。
https://www.akamai.com/jp/ja/about/facts-figures.jsp

またアカマイテクノロジーズは、全世界のすべてのウェブトラフィックの 15~30 %のデータを配信しています

CDNを利用するにはどうしたらいいのか

「CDNを提供している会社に申し込みさえすれば、誰でも簡単にCDNを利用できる!」
残念ながら、CDNはそこまで簡単なしくみではないので、現在のところボタンを押すだけで・・というわけにはいきません

たいていの場合、様々な決まりごとに則したデータ転送の仕組みなどを実現させるため、CDN連携のためのシステム開発やサーバーの調整が必要になります。

そのため、CDNをつかった動画配信が可能になっているシステムを利用するのがもっとも手軽でコスト低になります。

動画配信ソリューションですと、

  • Jストリーム社
  • ブライトコーブ社
  • エビリー社

のものなどが、CDNを使っての動画配信に対応しています。

また、動画サイト構築CMSのソーシャルキャストでは、管理画面から簡単な設定をするだけで、Amazon CloudFrontのCDNを利用した動画配信が可能となっています。

同時視聴者が多数になる場合には、CDNを利用することを前提としてサービスの設計やソリューションの採用、コストを考えるようにしましょう。