CDNとは何か?そのメリットも調べてみた

よこのじ(@yokonoji_work)です。

jQueryやBootstrapを利用しているとCDNにはお世話になっているかと思います。CDNを使わない方法もありますが、なぜCDNを使うのか?そのメリット・デメリットを整理しておきたいと思います。

CDNとは?

CDNとは、Content Delivery Network(コンテンツ デリバリ ネットワーク)のことです。

世界中に設置されたサーバーからユーザーにHTML、画像、CSS、JavaScriptファイルなどのコンテンツを届けることができます。これらのコンテンツが要求されるとユーザーに最も近いサーバーからデータが転送されますので、単一のサーバーからの転送よりも高速化されます。

cdn-about

この図のように、CDNは大本のオリジンサーバーとユーザーの中間に位置します。CDNサーバーはオリジンが持つデータをキャッシュ(コピー)しておき、ユーザーから要求があった場合に最適なルートで応答します。

CDNについては、CDN界の最大手Akamaiの動画でもわかりやすく説明してくれています。

CDNのメリット・デメリット

CDNを利用するメリットは大きいです。

  1. Webサイト表示の高速化
    例えば、あるサイトでGoogleが提供するCDNからjQueryを読み込んでいた場合、そのデータはブラウザにキャッシュされています。自身のWebサイトでも同様にGoogle提供のjQueryのデータを利用していれば、キャッシュデータを利用できます。つまり、再読み込みがなくなりますので、サイトの表示が速くなります。よって、CDNは広く利用されている提供元を選ぶべきです。
  2. サーバー負荷の軽減
    コンテンツを自身が持つサーバー以外から読み込むので、自身のサーバーの通信量を減らすことができます。サーバーの負荷が軽減されれば障害が起こりにくく、安定したWebサイトを運営することができます。サーバーに費用をかけずに済むので、コストダウンという見方もできますね。
  3. セキュリティの向上
    2に関連しますが、サーバー負荷が軽減されるということはネットワークやサーバーに負荷をかけるDoS攻撃などの悪意に強くなります。利益を生むサイトにおいては停止=損害なので、CDNを利用するメリットは大きいです。

 

デメリットとしては、CDNへアクセスが集中してCDNの応答が悪くなるなど、CDN側の障害により読み込みが行えなくなる可能性はあります。しかしながら、CDNは複数のサーバーから成るもので障害には強いですし、サーバー構築のプロが提供するサービスですからこの点は心配無用と思います。