CDNとは

CDNの目的

世界中に張り巡らされたサーバを通して、コンテンツにアクセスしようとするエンドユーザに最も近いサーバから効率的に配信する仕組みのことです。インターネット利用における「表示できない」「表示が遅い」「表示が止まる」を解決するためのサービスです。

コンテンツデリバリネットワーク(Contents Delivery Network, CDN)とは、Webコンテンツをインターネット経由で配信するために最適化されたネットワークのことである。コンテンツ配信網とも。

90年代以降ネットが一般に普及するにつれ、大手サイトからのリンクやテレビといった他メディアからのリンクにより、通常想定されていない大量のユーザーがサイトへ集中し、反応が遅くなったり、まったく応答不能になること(フラッシュクラウド効果)が多くなってきた。このような現象に対処する場合、サーバを一ヶ所だけに置くのではなく、地理的・バックボーン的に分散させるのが効果的である。

wikipediaより

通常、ユーザーがインターネット上のWebサイトへアクセスする際、Webサイト運営者のサーバへ直接アクセスします。
しかし突発的にアクセスが増加するとサーバへの負荷が増大し、サーバがダウンしてしまうことがあります。これを避けるための施策としてCDNの利用があげられます。

CDNの仕組み

CDNで利用されている多くはキャッシュサーバです。動作としては下記のようになります

  1. オリジンサーバに代わり、ユーザーからのリクエストを受ける
  2. ユーザーからリクエストされたコンテンツをオリジンサーバから取得する
  3. コンテンツをユーザーに返し、内部にコンテンツをキャッシュする
  4. キャッシュしたコンテンツはオリジンサーバから独立してキャッシュサーバが配信する。

CDNの主なメリット

CDNの主なメリットは高速化とピーク対策です。

サイトの高速化

Web通信はサーバとクライアント間の距離により、配信速度が制限されてしまうという特徴(弱点)があります。物理的に距離が離れているとそれだけ時間がかかります。そしてそれはコンテンツがリッチなページや動的なコンテンツの多いページでとなるほど、その違いが顕著に現れます。

そこで世界中に配置されたCDNを利用することで、オリジンサーバから取得したデータをキャッシュしておきアクセスしてきたユーザーにそれぞれ適したサーバからコンテンツを配信します。

ピーク対策

一度に多くのユーザがアクセスすると、サーバの応答に時間がかかることがあります。これはアクセス数がサーバの処理能力を超過したために発生します。
そのためにはアクセスに応じたサーバの増強を行う必要がありますが、突発的なアクセス増を予測してそれに備えることは難しいものです。

そこで世界中に配置されたCDNを利用することで、突発的なアクセス増においてもオリジンサーバにアクセスを集中させることなく、データをキャッシュしておいたCDNがコンテンツを配信することができます。

主要CDNサービス

Aakamai

世界最大手のCDN事業者「アカマイ・テクノロジーズ」が提供するCDNサービス。
世界102カ国以上、900以上の都市、1320以上のネットワーク、2700以上の拠点、170000台以上のサーバ群によって地球規模の負荷分散サービスをに提供しています。
Yahoo!、LINE、Apple、IBMといった名だたる企業がこの「Akamai」を利用しており、世界中のWebトラフィック全体の15~30%を配信していると言われています。

Amazon CloudFront

AWSを運営するAmazon社が提供するコンテンツ配信ウェブサービスです。
「Cloud Front」は、AWSのサーバーを使って画像や動画などの静的コンテンツを配信することで、高速表示させることが目的です。
料金体系は完全な「従量課金制」で、データ転送量とHTTPリクエスト回数による課金制になります。
設定に関する情報が豊富であることや価格体系が明らかになっている点はわかりやすいです。

Azure CDN

Azure Content Delivery Network (CDN) は、Microsoft社が提供するコンテンツ配信ネットワークサービスです。
東京にもエッジサーバが配置されており、日本のユーザーは世界中のAzureコンテンツ配信元のサーバーが、あたかも東京にあるかのように利用できます。
下記URLから料金予測を行えます。
http://azure.microsoft.com/ja-jp/pricing/details/cdn/

cloud flare

cloud flareはcloud flare社が提供するCDNで無料で利用することが可能です。
転送量に関しても「無制限」なので、無料版でも十分すぎるほどのクオリティです。
なお「Pro版」や「Business版」といった有料版もあり、無料版との違いは、
1,SSL通信対応
2,プリロードが可能
3,WAFのような仕組みで、SQLインジェクションや、XSSを試みるリクエストに対しての対策
などが行えます。
※「Pro版」では1ドメインにつき、「$20 / 月」の固定費用

地域分散・地域冗長

地域分散、地域冗長について調べていたのですが、
・冗長化(障害発生時でもシステムが止まらないための対応)
・コンテンツ配信の高速化、高品質化(CDNなど)
が混在してしまい、いったん整理のために切り分けて考えたいと思います。

※整理ができたらこのページを改めてまとめページとします。(ページタイトルも変わるかもしれません)