Content Delivery Networkとは、サーバーを複数配置してインターネット上の通信量を削減する仕組みである。CDNと略して呼ばれることの方が多い。日本語ではコンテンツデリバリーネットワークと表記するが、英語ではcontentと単数形になっている。
概要
ニコニコ動画やYouTubeを視聴するときは、インターネット回線の使用契約をしてその回線から動画データをダウンロードしてくるわけだが、サーバー側がどうなっているか考えたことはあるだろうか。
「光回線であるいは5Gで動画視聴が快適」という宣伝文句からわかるように動画配信はそれなりにネットワークに負荷がかかる(もっとも高速光回線については宣伝文句に踊らされて過剰投資させられている可能性も否定は出来ない)。サーバー側ではこちらが受け取るのと同じ量のデータを送り出しているので、単純に考えるとサーバー側には光回線が最大同時接続ユーザーの数に相当するだけ必要となる。
さらに、YouTubeはアメリカ、ニコニコ動画は日本で始まったサービスなので、日本人がYouTubeを見たり、アメリカ人がニコニコ動画を見たりするたびに、日本-アメリカ間の国際回線を人数分の動画データが行き来する。
…ということは実際にはなくて、これから述べるContent Delivery Networkの仕組みにより、少なくとも国際回線を人数分の動画データが行き来するという事態は回避されている。
リバースプロキシ
プロキシサーバーによる通信負荷軽減方法についてはプロキシの記事を参照のこと。
リバースプロキシとは、原理的にはプロキシサーバーと同じなのだが、プロキシサーバーはクライアントのLAN側に設置されるのに対して、リバースプロキシはサーバー運営会社側が多数のユーザーがいるところの近くに配置するものである。
プロキシサーバーがクライアント側の通信回線負荷軽減を目的としているのに対し、リバースプロキシはサーバー側の負荷軽減が目的となっている。
コンテンツデリバリーネットワーク
たとえば先程あげたニコニコ動画やYouTubeの場合でも、リバースプロキシをアメリカと日本に配置すれば、国際回線を大量の動画データが行き来する必要はなくなる。
この考えを発展させて、たとえば東京と大阪、もしくは都道府県ごとに設置したり、プロバイダ業者のサーバー内に設置したり、電話会社の基地局内に設置したりすれば、個々のサーバーの負荷と遠距離通信の負荷はさらに軽減される。
ただ、サーバーの数が増えると今度は各サーバーの内容を同一に保つ仕組みなど、ネットワーク管理が必要になってくるので、Content Delivery Networkという呼ばれ方をすることが多い。
実現方法
DNSが鍵となる。たとえばPCなりスマホなりの端末から"dic.nicovideo.jp"にアクセスしようとすると、端末は自身が接続しているネットワークのDNSに問い合わせをして"dic.nicovideo.jp"をIPアドレスに変換し、実際にはそのIPアドレスに向かってアクセス要求をする。
そこで、DNSから変換されたIPアドレスを答える時に、地域・プロバイダ・キャリアごとに、複数あるサーバーのうちからネットワーク的に最も距離が近いサーバーのIPアドレスを返すようにすればいい。端末側はIPアドレスをもとにアクセスするので、違う場所からアクセスする度に最も近いサーバーに誘導されることになる。
用途
動画配信を中心に、同じ内容の大量のデータを各PCに配信するのに用いられる。動画以外の例としてはjQueryのような多くのサイトの表示に共通して使われるJavaScriptライブラリの配信にも利用されている。スマホゲームも容量が大きいため有効な用途である。
インターネットの通信量に占める割合は正確なところは誰にもわからないのだが、少なくとも半分以上は占めているのではないかと思われる。もしかしたら8割を越えているかもしれない。
Windows 10はWindows Updateの際にLAN内など近隣のWindows端末からダウンロードするという設定が存在するが、これもContent Delivery Networkの一つと言えるだろう。
負荷軽減以外にもセキュリティ関連の付加価値サービスをつける企業も増えてきている。特にサーバーに負荷をかけるDDoS攻撃に強みを発揮する。
関連動画
関連商品
関連項目
- インターネット / インターネットサービスプロバイダ
- コンテンツ / 動画 / ゲーム
- サーバー / プロキシ
- jQuery
- DNS / IPアドレス
- トポロジー
- Windows Update
- TLAの一覧
- プログラミング関連用語の一覧
- 1
- 0pt