ネットの大規模障害が起きた「CDN」って何?実際にアクセスして確かめてみた

ネットの大規模障害が起きた「CDN」って何?実際にアクセスして確かめてみた

分散配置されたリバースプロキシサーバー

 CDNは「Content Delivery Network」の頭文字を取ったもので、インターネット上でやり取りされるデータの流れをスムーズにする役割を担うサービスだ。例として身近なのは、やはりWebサイトでの利用だろう。

 普段、我々が目にするWebサイトのデータは、インターネット上のWebサーバーに保管されており、このWebサーバーから記事や画像などのデータを取得することでブラウザにWebページを表示することができる。

 しかし、グローバルにサービスを展開するサイトや人気のあるサイトでは、本家本元のWebサーバーにのみアクセスが集中すると、サービスの品質が低下する恐れがあったり、遠い地域からアクセスする場合にページを読み込むまでに時間がかかったりしてしまう(図1の状態)。

 このような状況を改善できるのがCDNだ。

ネットの大規模障害が起きた「CDN」って何?実際にアクセスして確かめてみた

 普段、あまり意識することはないが、今回のFastlyの障害でも分かるように、CDNは様々なサイトが利用している。CDNを簡単に説明すると、様々な地域に分散配置されたリバースプロキシサーバーだ。

図2:リバースプロキシサーバー

 企業などでも使われているプロキシサーバーは、特定の発信元から不特定多数の宛先に対しての通信に利用されるが、リバースプロキシサーバーは、この逆で、不特定多数の発信元からの通信を特定のサーバーへと転送するために利用される。

 より具体的には、DNSの仕組みを使って、本来のアクセス先に対する通信をCDNサーバーへと転送する。

 例えば、図3にあるように、Webページを見ようとPCからブラウザで「https://www.example.com」と入力すると、その返答として、このサーバーのIPアドレスを返すのではなく、「●●●.map.fastly.net(fastlyの場合)」のようなCDNサーバーの名前(CNAME)が返される。

図3:DNSサーバーとCDNサーバー

 これにより、PCは、本来のWebサーバーではなく、CDN事業者が所有するサーバーへとアクセスすることになる。

 そして、CDNサーバーにキャッシュがあれば(以前ほかのユーザーがアクセスしたデータが残っていれば)、キャッシュからWebページを送信し、キャッシュがなければ本家本元のWebサーバー(オリジンサーバー)へと転送。そのデータを改めてキャッシュするという仕組みとなる。

 CDNは、Webサーバーで利用されるのが一般的だが、アプリ配信、動画ストリーミング、更新プログラム配信など、様々なデータで利用することが可能で、インターネット上では欠かせないサービスとなっている。

 主な事業者は、Akamai、Amazon CloudFront、Cloudflare、CDNetworksなどがある。

 今回話題になったFastlyは2011年創業の比較的新しいサービスだが、オープンソースのVarnishをベースに構築された機能性の高さが注目されており、国内では同社Webページで公表されているだけでも、日本経済新聞社、メルカリ、クックパッド、一休などの大手サイトで利用されている。