動画CDNとは?

動画コンテンツ配信ネットワーク(CDN)は、ストリーミング動画を世界中の視聴者に高速かつ効率的に届けることができます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • 「動画CDN」の定義
  • CDNでの動画のストリーミングの仕組みを説明する
  • 動画のストリーミングにCDNを使用する利点を説明する

記事のリンクをコピーする

動画CDNとは?

動画CDNとは、動画のストリーミング配信をサポートするために設計された、CDNのことです。動画のストリーミングにCDNを使用することで、遅延バッファリング時間を最小限に抑え、ストリーム配信元(オリジンサーバー)がリクエストで過負荷状態にならないようにストリームの内容を世界中の視聴者に届けることができます。

一般的なCDNは、HTML、画像、JavaScript、CSSスタイルシートなどのWebコンテンツと一緒に動画コンテンツをキャッシュして配信することができますが、動画CDNは、動画のストリーミング専用に構築することができます。例えば、Netflixは、動画コンテンツをより効率的に配信するために、Open Connectという独自の分散型ネットワークを構築しました。

CDNとは何か?

コンテンツ配信ネットワーク(CDN)とは、インターネット上でコンテンツをキャッシュして配信する、接続されたサーバーのグループのことです。CDNは世界中に分散しているため、オリジンサーバーや単一のデータセンターよりも効率的に、より多くの人々にコンテンツを配信することができます。CDNは、CDNを利用しているWebサイトにあるコンテンツのリクエストをユーザーから受けるたびにコンテンツをキャッシュします。「キャッシュ」とは、ファイルを一時的に保存することを意味します。

仮に、ボブがニューヨークのニューヨークシティにあるサーバーで、Webサイト「bobisgreat.example.com」をホストしているとします。ニューヨーク州アルバニー市(約250km離れた場所)に住むアリスがこのWebサイトを訪問すると、Webサイトのコンテンツは250kmしか移動しないため、すぐに読み込まれます。しかし、カルロスがカリフォルニア州ロサンゼルスの自宅(約4,800km離れた場所)からbobisgreat.example.comを読み込もうとすると、Webサイトが読み込まれるまでかなり長い時間待たなければなりません。

ボブがCDNサービスを利用している場合、CDNは彼のWebサイトのコンテンツをアリスにもカルロスにも双方に近い場所でキャッシュすることができます。仮にボブのCDNが、ニューヨークに加え、アルバニーとロサンゼルスのデータセンターで彼のWebサイトをキャッシュしたとします。これで、アリスもカルロスも、bobisgreat.example.comがブラウザに読み込まれるまで、ほとんど待つ必要がなくなります。

なぜ動画のストリーミングにCDNを使用するか?

視聴者との距離を最短にすることで、遅延を低減

動画のストリーミングについても、上述の原理と同じです。動画コンテンツの場所が視聴者に近ければ近いほど、読み込みと再生の速度は速くなります。CDNは、ストリームの配信元よりも、視聴者に近い場所にサーバーを所有している可能性があります。

オリジンサーバーに負荷がかからない

CDNの多数のサーバーを使用することで、ストリームのオリジナルのサーバーがリクエストで過負荷状態になることはありません。200台のサーバーで構成されるグループは、1台のサーバーよりもはるかに優れた方法で、何千人もの視聴者に動画を配信することができます。

ストリーミングコンテンツがネットワークの帯域幅を超えない

ネットワークは、一度に通過できるデータの量が決まっています。この最大量を「帯域幅」と呼びます。ネットワークを通過するデータ量がこの帯域幅を超えると、高速道路で車を一車線に制限すると交通が遅くなるように、データの配信速度は大幅に低下します。CDNの分散された複数のサーバーからストリームが配信される場合、このように1つのネットワークがトラフィックに圧倒される可能性は低くなります。

ストリームはどのようにキャッシュされるか?

ストリーミングでは、動画ファイルをサーバーからクライアントに連続的に送信します。しかし、ストリーミングされる動画は、1つの連続したファイルとしてユーザーのデバイスに届くわけではありません。ストリーミングされる動画は、小さなセグメントに分割されています。各セグメントは、ユーザーの動画プレーヤーに読み込まれ、正しい順序に配置されます。

画像やHTMLページ、JavaScriptのスニペットがCDNにキャッシュされるのと同様に、個々の動画のセグメントもCDNにキャッシュすることができます。ユーザーがストリームをリクエストすると、CDNはストリームのオリジンから動画のセグメントが到着すると同時にキャッシュを開始します。次のユーザーが同じストリームをリクエストすると、CDNは代わりにキャッシュからそれらのセグメントを配信することができ、より高速になります。

CDNはどのようにライブストリームをキャッシュするか?

動画がストレージから配信される動画のオンデマンドストリーミングの場合、動画のキャッシュは非常にシンプルで、CDNがオリジンサーバーに保存されている動画を要求し、オリジンサーバーがそれを配信し、CDNが動画をキャッシュします。

ライブストリーミングでは、保存されたバージョンの動画はすぐに使える状態ではありません。しかし、そのプロセスは似ています。唯一の違いは、CDNが元の作成された動画をキャッシュするのではなく、リアルタイムで作成される動画セグメントをキャッシュすることです。そして、ストリームは、ストリームのオリジンから直接提供されるのではなく、キャッシュから視聴者に提供されます。

多くの視聴者は、各セグメントがキャッシュされるまで数秒余分に待たなければなりませんが、効率的に行えば、オリジンサーバーから直接ストリームを取得するよりも、「ライブ」に近い状態を実現することができます。CDNはオリジンサーバーよりも視聴者に近い位置にあるため、キャッシュからストリームを提供することで、オリジンサーバーとの間で行われるラウンドトリップタイム(RTT)を短縮することができます。また、CDNを利用することで、帯域幅の問題によって視聴者のライブストリームが遅くなる可能性が低くなります。

Cloudflare CDNは動画に対応しているか?

Cloudflare Streamは、CloudflareのCDNを利用して動画を配信するストリーミングサービスです。Cloudflareのグローバルネットワークは、あらゆる場所の視聴者に高速配信とスムーズな動画再生を保証します。Cloudflareは、先進国におけるインターネット人口の99%の100ミリ秒圏内で運営しています。