CDN とは?
CDN はコンテンツ配信ネットワークの略称です。その名の通り、エッジロケーションサーバーとも呼ばれる分散ノードのネットワークであり、ユーザーの位置、コンテンツのオリジンサーバー、エッジサーバーの位置に基づき、コンテンツ (Web ページ、動画、画像など) をエンドユーザーに配信します。CDN ノードはコンテンツをキャッシュする機能を備えており、エンドユーザーに地理的に近い場所からコンテンツを配信できます。CDN ノードは、CDN プロバイダーにより世界中の複数の地域に配置され、複数の ISP (インターネットサービスプロバイダー) ネットワークにまたがって展開されています。
CDN の仕組み
ユーザーが特定の場所から Web サーバーのデータ (Web サイト) にアクセスしようとする際、CDN の設定が構成されている場合、リクエストはまず最寄りの最適な CDN ノードに送信されます。CDN ノードにリクエストされたデータが既にキャッシュされている場合は、オリジンサーバーに戻ることなく、そのノードからユーザーにコンテンツが配信されます。一方、その CDN ノードにデータがキャッシュされていない場合は、リクエストが CDN ノードに届いた後、オリジンサーバーに転送されます。CDN ノードはオリジンサーバーからデータをフェッチしてユーザーのリクエストに応え、さらにそのデータをキャッシュして、同じデータに対する今後のリクエストに備えます。つまり、CDN を導入した Web サイトでは、特定のコンテンツを最初にリクエストするユーザーのみ追加のレイテンシが発生し、それ以降に同じコンテンツをリクエストするユーザーは CDN ノードから配信されるため、高速にアクセスできます。ただし、これはコンテンツのコンテンツキャッシュ設定に依存します。キャッシュ設定によっては、コンテンツの有効期限に基づき CDN ノードがコンテンツを再フェッチする必要がある場合があります。この点については、ページの下半分で少し詳しく説明しています。
実際のシナリオでの意味と必要性
Web サイトを運営していると想定しましょう。このサイトは Web サーバー (コンテンツのオリジン) でホスティングされており、訪問者にインスピレーションあふれる名言の画像を提供しています。サイト開設当初は、イギリスなど特定の地理的位置でホスティングしていました。開設当初はイギリスからの訪問者がサイトを利用し、コンテンツを閲覧・ダウンロードしていました。サイトの人気が高まるにつれ、イギリス国内外のより多くのユーザーがサイトにアクセスするようになります。これにより 3 つの課題が生じます。第 1 に、多くのユーザーが同じ Web サーバーにアクセスすることでサーバー負荷が増大し、すべてのユーザーに同時にサービスを提供できなくなり、結果としてサイトのアクセス体験が悪化します。第 2 に、オリジンサーバーがイギリスに位置しているため、地理的に遠い場所からインターネット経由でデータが転送され、ユーザーはレイテンシの問題に直面します。第 3 の課題は、オリジンサーバーからのコンテンツ配信にかかる帯域幅コストです。より多くのユーザーに対応するには、より多くの帯域幅が必要となります。
これら 3 つの課題は、CDN を使用することで解決できます。CDN は地理的に分散したサーバーのネットワークであり、コンテンツ配信の仲介役としてエンドユーザーとオリジンサーバーの間に位置します。第 1 の課題について、ユーザーが Web サイトにアクセスすると、コンテンツ配信に最適なノードにリクエストが送信され、前述の仕組みと同様に CDN ノードから配信されます。この場合、すべてのユーザーからのリクエストをオリジンサーバーに送信するのではなく、分散ノードに送信するため、オリジンサーバーの負荷が軽減されます。

第 2 の課題について、CDN ノードは世界中の地域や大陸に分散して配置されているため、この課題に対処できます。ユーザーは自分と同じ地域のノードからサービスを受けるため、CDN ノードが利用可能であれば、オリジンサーバーからの距離は問題になりません。
第 3 の課題であるコストについて、CDN はすべてのリクエストがオリジンサーバーに送信されないため、サーバーの帯域幅要件を削減できます。CDN ノードの帯域幅コストは、一般的にオリジンサーバーよりもはるかに安価です。さらにコストを最適化するため、帯域幅あたりのコストが最も安い CDN ノードの場所を選択してコンテンツを配信することもできます。
Web サイトのキャッシュ設定
Web サイトのキャッシュ設定は、CDN のコンテンツキャッシングにおいて重要な役割を果たします。Web サイトのキャッシュ設定に基づき、CDN は Web サーバーからコンテンツをキャッシュできます。キャッシュ設定にはさまざまな種類があり、CDN ノードがコンテンツを毎回ダウンロードする場合もあれば、コンテンツが期限切れかどうかをサーバーに確認するようノードに要求する場合もあります。キャッシュ設定の詳細については、リンク先をご覧ください。
関連記事
-
クラウドコンピューティングとは
ナレッジベースチーム
-
パブリッククラウドとは
ナレッジベースチーム
-
プライベートクラウドとは
ナレッジベースチーム
-
パブリッククラウド、プライベートクラウド、ハイブリッドクラウド
ナレッジベースチーム
-
仮想化とは
ナレッジベースチーム
-
ハイパーバイザとは
ナレッジベースチーム
