はじめまして、エンジニアの大場です。普段はJストリームの自社CDNサービスであるCDNextの開発・運用チームに参画しています。CDNのEdgeサーバの機能追加や、お客様向けの管理コンソールの開発、日常的に発生するメンテナンス作業など、幅広くサービス運用に関わっております。この講座では、図解をしながら、わかりやすくCDNの仕組みとそこで使われている技術を解説していきたいと思います。第1回はCDNの仕組みと技術の基礎についてご紹介します!
CDNとは?
CDNとは「Content Delivery Network」 の略です。その名前から想像できる通り、多数のコンテンツ配信サーバと配信ネットワークによって構成されたシステムを利用することで、インターネットを利用するユーザーに対して効率よく高速に動画・画像・文字データなどの「コンテンツ」を配信する仕組みです。
普段インターネットで何気なく閲覧しているWebサイトや動画サイト、またはスマートフォンのアプリなど、多様な用途において実はCDNの技術が使われています。
CDNの構成
CDNを用いた配信では主に、「オリジンサーバ」「キャッシュサーバ」「ロードバランサ」で構成された仕組みを用います。元のデータを保有する「オリジンサーバ」から配信サーバ拠点にある「キャッシュサーバ」にデータをキャッシュし、キャッシュしたデータをオリジンサーバに代わりユーザー向けに配信します。
「キャッシュサーバ」は複数のサーバを束ねたクラスタ構成になっており、配信サーバ拠点に設置されています。CDNの配信サーバ拠点はPOP(Point of Presence)とも呼ばれ、たとえば関東や関西といった地理的に離れた場所や、ネットワーク的に配信効率が良い場所にあるデーターセンターを拠点として複数展開されています。
CDN関連用語の解説
オリジンサーバ:配信するデータの元となるオリジナルのコンテンツ(動画・画像・文字データなど)を格納しているサーバ。
データセンター:物理サーバ機器やネットワーク機器をまとめて設置・収容している施設 電源・空調・インターネット接続といったIT機材に必要な設備が用意されている。火災や地震などの災害が発生しても被害が最小限になる対策を施した建物構造となっている。CDNでは関東や関西など地理的に離れた複数の拠点にデータセンターを分散して利用している。
キャッシュサーバ:動画や画像などオリジンサーバから配信されるデータを複製し格納している。ユーザーからリクエストがあった場合にはオリジンサーバに代わってエンドユーザーに応答する。
GSLB(Global Server Load balancer):地理的に分散する複数の拠点間でサーバのロードバランシングを行う広域負荷分散システム。
DNS(Domain Name System):ドメイン名(example.comなど) とコンピューターが接続に使用する数字の IP アドレス (203.0.113.0など) を相互に変換するシステム。ユーザーからのリクエストは、各ユーザーが利用している(たとえばプロバイダーが提供する)DNSサーバを経由してCDNへ誘導される。
IX(Internet Exchange Point ):インターネットプロバイダーとデータセンターの相互接続ポイント。CDNでは、データセンターから複数のIXに接続されインターネット事業者と経路交換を行っている。
ユーザー:PCやスマートフォンなどの端末でコンテンツを視聴するエンドユーザー。
コンテンツ配信の高速化
CDNを利用しない場合
CDNを利用する場:
CDNを利用することで、ユーザーにコンテンツを高速に提供することができます。
CDNを使用しない環境では、オリジンサーバにユーザーからのリクエストが集中してしまいます。そのため、オリジンサーバの処理能力を超えるようなリクエスト数があった場合に処理待ちが発生してしまい、結果的にコンテンツの配信が遅延したり、オリジンサーバからエラーが返され閲覧できないといった問題が発生したりする場合があります。
一方で、CDNを使用した環境では、ユーザーからのリクエストの大半はCDNのキャッシュサーバへ向けられ、キャッシュサーバが保持しているキャッシュを各ユーザーに返します。キャッシュサーバは複数台のサーバが用意されており、分散してデータの送信を行うために大量のリクエストを受け付けることができます。通信回線においても大容量のデータを送信できる回線設備になっているため、コンテンツを高速にユーザーまで配信することが可能になります。
また、オリジンサーバからのデータの送信は、キャッシュサーバにコンテンツをキャッシュする時のみに限られるため、オリジンサーバの負荷が軽減されます。このことから、オリジンサーバのスペックが低い場合でも、CDNを利用することで配信のパフォーマンスが改善されます。

