P2P(peer to peer)の考え方を取り入れた新しいアプリケーションが登場した。P2P技術を使ってWebサイトの負荷を減らし,ユーザーからのアクセスを速くするCoral(コーラル)という技術である。米ニューヨーク大学コンピュータ・サイエンス学部のグループが開発した。すでに試験運用が始まっており,一般ユーザーも利用できる(http://www.scs.cs.nyu.edu/coral/)。そこで今回は,このCoralについて探ってみた。
実は,Webアクセスを速くしWebサイトの負荷を減らす目的の技術として,すでにCDN(content delivery network)が実用化されている。インターネットにCDNサーバーというサーバーを分散配置し,そのサーバーが本来のWebサイトに代わってユーザーにコンテンツを返すようにする技術である。複数のCDNサーバーにアクセスを分散させることで,ユーザーからのアクセスが1カ所のWebサイトに集中するのを防ぐわけだ。
ユーザーがどのCDNサーバーへアクセスするかは,DNSサーバーが決める。ユーザーがDNSサーバーにWebサイトのIPアドレスを問い合わせたときに,ユーザーに最も近いCDNサーバーのIPアドレスを返すようにしてある。
ただ,CDNは,事業者が莫大な資金を投資してCDNサーバーを世界各地に設置し,有償でサービスを提供している。アクセス数の多いWebサイトを抱える企業は,CDN事業者に料金を支払って自身のWebサイトをCDNサーバーに登録してもらう必要がある。この結果,実際にCDNを利用しているサイトは限られた有名サイトだけだった。
Coralも複数のCDNサーバーをインターネットに分散配置する点は従来のCDNと同じだ。ただ,CDNサーバーとして動かすコンピュータは,LinuxやMac OSが稼働する普通のパソコンでかまわない。しかも,そのサーバー・ソフトは無料で公開されている。そして,ボランティアのユーザーがこのサーバー・ソフトを使ってCDNサーバーをインターネットに公開するしくみにした。
CDNでは,ユーザーはほかのWebサーバーへアクセスするのと同じようにCDNを利用するWebサイトへアクセスできた。しかし,Corelの場合はちょっと異なる。CoralのCDNを使ってユーザーがWebサイトにアクセスするには,通常のURLのドメイン名の後ろに「.nyud.net:8090」と付ける必要がある。例えば,http://www.nikkeibp.co.jp/へアクセスするときのURLは,http://www.nikkeibp.co.jp.nyud.net:8090/になる。
こうすることで,CorelのCDNサーバーにはあらかじめWebサイトを登録しておく必要がない。アクセスを受けたCDNサーバーに要求されたWebコンテンツがないときは,近くのCDNサーバーや本物のWebサイトからコンテンツを取得するしくみになっている。Webサイトの管理者は大規模な掲示板などにサイトを紹介する際に,nyud.net:8090を付けたURLを書き込めば,アクセスが自社サイトに集中しないようにできるのである。