CDN とは?

CDN(Content Delivery Network)は、ユーザー、コンテンツの配信元サーバー、エッジサーバーのロケーションに応じてコンテンツ(Web ページ、動画、画像など)をエンドユーザーに配信するための、分散ノード(エッジロケーションサーバーとも呼ばれる)のネットワークです。CDN ノードは、コンテンツのキャッシュ機能を有し、地理的にエンドユーザに近い場所からユーザにコンテンツを提供することができます。また、CDN は CDN プロバイダーによって複数の地理的に離れた場所に配置され、複数の ISP(インターネットサービスプロバイダー)ネットワークをまたがることができます。

CDN の挙動

ユーザーが特定の場所から Web サーバ(Webサイト)にアクセスしようとした際に Web サイトに CDN 設定がされていると、リクエストは最も近い CDN ノードに送信されます。CDN がリクエストされたデータを既にそのノードにキャッシュしている場合は、オリジンサーバーに戻る必要はなく、そのノードが Web コンテンツを提供します。もし、リクエストしたデータが CDN ノードにキャッシュされていない場合、CDN ノードからオリジンサーバにリクエストが送信されます。CDN ノードはオリジンサーバーからデータを取得し、ユーザーに Web コンテンツを提供します。さらに、CDN ノードはそのデータをキャッシュし、今後データをリクエストする他のユーザにも対応します。したがって、Web サイトでCDNを使用した場合は、特定のコンテンツをリクエストする最初のユーザーだけが余分な待ち時間を被り、将来そのコンテンツを要求する他のすべてのユーザーは CDN ノードから配信されるため、そのコンテンツへのアクセスは速まります。また、コンテンツの有効期限に基づいて CDN ノードはコンテンツを再度取得する必要なケースもあり、これはコンテンツのキャッシュ設定(Web サイトのキャッシュ設定など)にもよります。この点については、このページ内でもう少し詳しく説明します。

実際の状況と必要な理由

Web サイトの訪問者にインスピレーションの引用符の画像を提供する Web サイトの Web サーバー(コンテンツのオリジン)を所有しているとしましょう。Web サイトを始めたとき、特定の地理的なロケーションは英国に構築したとします。最初に Web サイトを公開した時は、Web サイトにアクセスしてコンテンツをダウンロードするのは英国からの訪問者かもしれません。その後 Web サイトの人気が高まり、英国だけでなく海外からのより多くのユーザーがアクセスし始めます。
この段階で、3 つの課題があります。
第一に、より多くのユーザーが同じ Web サーバーにアクセスすると、Web サーバーの負荷が増大し、同時にすべてのユーザーに同時にサービスを提供できなくなり、Web サイトへのアクセスにユーザーエクスペリエンスが悪くなります。
次に、オリジンサーバーは英国にあるため、アクセスするユーザーは地理的に離れた場所からインターネットを介してデータが転送されるための待ち時間が発生します。
三番目の課題は、多くのユーザーにコンテンツを配信するためにより多くの帯域幅を必要とするため、オリジンサーバーからコンテンツを配信するために支払う帯域幅コストの増大です。
これら 3 つの課題は CDN を使用することによって対応することができます。CDN は、コンテンツ配信のための地理的に分散したサーバーのネットワークであるため、エンドユーザーとオリジンサーバーの間で仲介として機能します。ユーザーが Web サイトにアクセスすると、そのリクエストはコンテンツ配信に最適な CDN ノードに送信され、何れの場合も CDN ノードがユーザーに配信することになります。これにより、ユーザーからのリクエストはすべてオリジンサーバーに送信されることなく CDN ノードに分散され、オリジンサーバーの負荷は最小限に抑えられます。

what is cdn

また、CDN ノードはさまざまな地域や大陸に分散しているため、ユーザーは自分の地域の CDN ノードから配信を受けることになり、CDN ノードが利用可能である限り、オリジンサーバーからの距離が問題になることはありません。
コストの課題については、すべてのリクエストがサーバーに送られなくなるため、CDN はオリジンサーバーの帯域幅を減らすことができます。CDN ノードは、オリジンサーバーよりも帯域幅コストがはるかに安価になります。さらにコストを低減するためには、帯域幅に対するコストが最も安価な CDN ノードの場所を検討することもできます。

Web サイトのキャッシュ設定

Web サイトのキャッシュ設定は、CDN コンテンツのキャッシュにおいて重要な役割を果たすことがあります。CDN は Web サイトのキャッシュ設定に基づいて、Web サーバーからコンテンツをキャッシュします。毎回 CDN ノードにコンテンツをダウンロードさせる、もしくはコンテンツの有効期限が切れているかどうかを確認するようにノードに要求することができる、といったさまざまなキャッシュ設定があります。リンクをクリックして、キャッシュポリシーの設定についてさらに詳しい解説をご覧ください。

関連情報