みなさんは、CDNを使ったことがありますか?
あまりイメージのわかない方も、YouTube(ユーチューブ)やNetflix(ネットフリックス)などの動画配信サービスは利用されたことがあるのではないでしょうか。
CDNとは、映像や音声といった大きなサイズのコンテンツをネットワークで配信する仕組みのことです。
みなさんがよく利用する動画配信サービスを効率よく運営するためには、CDNが欠かせない存在であると言えるでしょう。
今回は、CDNの概要や必要とされる理由、仕組みなどについて解説します。
Windows Serverの
レンタルサーバーならWinserver!
★15年の実績と丁寧なサポートが好評です★
Winserverについてはこちら
目次
CDNとは
ここ何年かの間に、Hulu(フールー)、Amazon Prime Video(アマゾンプライムビデオ)など、インターネット上で提供される動画配信サービスが世界中で利用されるようになりました。
こうしたサービスを提供する上で欠かせないのがCDNです。
CDNとはどのようなもので、どのような背景から誕生したのでしょうか。
CDNとは
CDNとは、Content Delivery Networkの略称で、直訳すると「コンテンツを配信するネットワーク」のことです。
つまり、動画や音楽など大きなサイズのコンテンツデータをインターネットで適切に配信するための仕組みを指します。
CDNには、以下のような特徴があります。
CDNには、以下のような特徴があります。
- コンテンツ配信専用のサーバーである
- 複数のサーバーでの負荷分散を行なっている
- 動画配信だけでなく、Windows Updateや天気予報サイトなど高負荷が見込まれる多くのサービスで活用されている
CDNの特徴を順番に見ていきましょう。
第一に、CDNとはコンテンツをインターネット上で配信するためのサーバーを指します。
次に、サーバーは一か所ではなく複数地点に設置されており、ユーザーに物理的に近いサーバーを優先して通信を行うことで、サーバーへの負荷を分散しています。
最後に、CDNは動画配信だけでなく、WindowsやiOSのアップデート、天気予報サイトなど、決まった日時に大量の通信が予想されるサービスでも活用されています。
CDNが必要になった背景
近年、インターネット上で提供されているサービスには、下記のように大容量のコンテンツを配信するものや、アクセスが集中するものが多くあります。
- 動画配信サービス(YouTube、Netflix、Amazon Prime Videoなど)
- 音楽配信サービス(Spotify、LINE MUSIC、Apple Musicなど)
- 天気予報(tenki.jp.、ウェザーニュース、Yahoo! 天気・災害など)
- ニュースサイト(NHKニュース、Yahoo!ニュース、Googleニュースなど)
2010年代以降、スマートフォンやタブレット端末の普及に伴い、Webサービスの利用者が爆発的に増加しました。
ただでさえ、動画や音楽などの大容量コンテンツは、配信のためにネットワークに多大な負荷がかかります。
加えて上記のWebサービスは、通年でアクセスが多くなるもの、災害時など特別な状況でアクセスが多くなるものなど様々なタイミングでアクセスが集中します。
アクセス過多となることで、サイトの表示に時間がかかるケースや、サイトが表示できなくなるなどの問題が発生するケースも少なくありません。
こうした状況を解決するため、「アクセス負荷を分散し、効率的なコンテンツ配信を実現する仕組み」であるCDNが必要とされるようになったのです。
CDNの歴史
CDNは、今から20年以上前にAkamai社によって誕生しました。
Akamaiとはハワイの言葉で「賢い」「知的な」を意味します。
Akamai社の提唱したCDNは、インターネット回線が混雑する問題への対処法を示したとして話題になりました。
その後2010年代中盤になると、インターネット利用者の増加に伴い、CDNの利用が拡大することになります。
かつては大企業のコンテンツ配信が中心でしたが、インターネット利用者の増加によって、中小企業や地方自治体でも導入が進められるようになりました。
セキュリティ対策としての側面や、CDN事業者の増加に伴い幅広い料金形態が用意されたことにより、今後もCDNを利用したサービスが増加すると予想されます。
CDNの仕組み
アクセス負荷を分散し、効率の良いコンテンツ配信を実現するCDN。
CDNとは、どのような仕組みによって、その機能を実現しているのでしょうか。
簡単に言うと、
CDNは配信データを一時的に保存しておくキャッシュサーバーである
と言えます。
このキャッシュサーバーを含めて、CDNは以下の3つの要素から構成されます。
- DNSサーバー:DNSを用いてIPアドレスとドメイン名の変換を行うサーバー
- キャッシュサーバー:コンテンツデータをキャッシュするCDN
- オリジンサーバー:コンテンツサービスを提供するサーバー
キャッシュサーバーと関連して、プロキシサーバーについて知りたい方は下記の記事をご覧ください。
CDNを利用しない場合の通信
例として、CDNを利用していないWebサービスにアクセスする場合を考えてみましょう。
この場合、私たちの端末は、オリジンサーバーへ直接アクセスして、コンテンツをダウンロードする必要があります。
もし、オリジンサーバーがアメリカのカリフォルニア州に配置されているなら、私たちの端末は太平洋の反対側まで通信してダウンロードすることになります。
これでは、ダウンロードに時間がかかってしまいますよね。
また、世界中のユーザーがたった1つのオリジンサーバーへアクセスすることになるため、オリジンサーバーに負荷が集中することになります。
それにより、アクセスの集中やコンテンツの大容量化によって、Webサイトの表示やコンテンツ配信に影響を及ぼす可能性があります。
CDNを利用した場合の通信
次に、CDNを利用したWebサービスにアクセスする場合を考えてみましょう。
キャッシュサーバーは、世界中に配置されており、オリジンサーバーの代わりにコンテンツを配信する役割を担います。
オリジンサーバーがカリフォルニア州に配置されていても、私たちの端末は日本にあるキャッシュサーバーにアクセスして、コンテンツをダウンロードすることができます。
わざわざアメリカまで通信するより、日本のキャッシュサーバーにアクセスする方がずっと高速ですね。
また、世界中のユーザーが世界中のキャッシュサーバーと通信を行うため、オリジンサーバーへの負荷を分散することができます。
これまでのまとめとして、CDNがユーザーからのサービスアクセスに対してどのように働くのかを、図で説明します。
- ユーザーからのサービスアクセス
- DNSがキャッシュサーバーにリクエストを送る
- キャッシュサーバーはオリジンサーバーへリクエストを送る
- オリジンサーバーがデータを提供する
→データーはキャッシュサーバーに保存される - キャッシュサーバーがユーザーのリクエストに対して応答を行う
- ユーザーがサービスを利用することができる
CDNを可能にするDNSの設定方法
上記でDNSという単語が登場しましたが、みなさんはDNSをご存知でしょうか。
DNSはDomain Name Systemの略称であり、ドメイン名(example.comなど)とIPアドレス(203.137.1.214など)を紐づける仕組みのことです。
DNSについてはこちらで詳しく説明しています。
それでは、CDNを利用する際のDNSサーバーの設定がどのように行われているかを見てみましょう。
通常、DNSサーバーではAレコードを用いてドメインに対応するIPアドレスを定義しています。
AレコードとはAddress(アドレス)の頭文字で、下記のように設定します。
例:example.com IN A 203.137.1.214
これは、「ドメインexample.comのIPアドレスは、203.137.1.214である」という意味です。
CDNでは、DNSサーバーがキャッシュサーバーにリクエストを送信する必要がありますよね。
そのために用いられるレコードが、CNAMEレコードです。
Canonical Name record(カノニカルネームレコード)の略称で、「エイリアス」というドメインに対する別名を定義することができます。
具体的には、下記のように設定します。
例:example.com IN CNAME cache.exampe.com
これは、「ドメインexample.comのコンテンツデータは、キャッシュサーバーcache.exampe.comに格納されている」という意味です。
CDNを使うメリット
Netflix、Youtubeのような動画配信サービス、Windows Updateのようなファイル配信サービスや天気予報、ニュースといった多数のアクセスが予想されるサイト。
こういったサイトによく使われているCDNですが、具体的にCDNを使うことによってどういったメリットがあるのでしょうか。
また、デメリットはないのでしょうか。
ここでは、CDNを使うメリット・デメリットについて触れていきます。
CDNを使うメリット
CDNを使うと以下のようなメリットが得られます。
- サーバーに対する負荷が低減できる
- 高速かつ安定したコンテンツ配信が可能となる
- 運用コストの削減が可能となる
CDNを使う際のもっとも大きなメリットは「高速で安定したコンテンツの配信」です。
CDNを使うデメリット
逆にCDNを使うことで、以下のようなデメリットがあります。
CDNはキャッシュを扱うため、本来キャッシュとして残すべきでない「個人情報などをキャッシュとして残してしまう」など、事故が発生するリスクもあるので気をつけましょう。
また、オリジンサーバーのデータを更新してもキャッシュサーバーに保持しているコンテンツデータが古いと、「古いコンテンツを配信してしまう」ことになります。
必要に応じてキャッシュサーバーがデータを保持する時間を調整し、最新のデータを配信できるように注意しましょう。
セキュリティ対策にもなるCDN
コンテンツ配信用のキャッシュシステムとして提供されるCDNですが、以下のような仕組みを備えてセキュリティ対策として活用できるものもあります。
こうしたものはWebサービスとして提供する場合は、セキュリティ上不可欠な物です。
こうした機能を持つCDNを使うことも検討しましょう。
WAFやDDoS攻撃についてはこちらの記事で詳しく説明しています。
まとめ
YoutubeやNetflix、Amazon Prime Videoなどの動画配信サービスやWindows Updateなどのファイル配信サービスのようにインターネット上では、ネットワークを介してさまざまなコンテンツサービスが提供されており、私たちはそれらを自由に利用することができます。
今回解説したCDNは、こうしたコンテンツ配信を高速かつ効率的なものとする仕組みです。
CDNには、今回紹介したようにさまざまなメリットがあるだけでなく、セキュリティ機能を備えているケースもあります。
コンテンツ配信を検討しているのであれば、ぜひCDNを利用しましょう。
CDNと関連して、リバースプロキシについて知りたい方はこちらの記事をご覧ください。