Top Technology API

短縮URL + CDN = 迅速な情報共有

きっかけ

2011年3月11日に発生した大地震により,日本国内では多くの人々が情報を求めてインターネット上のツールを利用しています. 特に今回は,Twitterによる情報交換が盛んに行われており,短縮URLという形式で,有用なWebサイトの情報が拡散されています.

しかし,残念ながら有用なWebサイトほどアクセスが集中し,閲覧できなくなる傾向にあります. 大手サイトであれば,大容量ホスティングサービスに移行したり,CDNと契約することによって解消できますが,小規模サイトには困難です.

そこで,サーバ側の対応なしに,アクセス集中を緩和するメカニズムを考えてみました.

短縮URLからCDNを利用するメカニズム

このサイトでは,フォームからURLが送られると,CDNへのURLに書き換えます. たとえば,http://example.com/index.html であれば,http://example.com.nyud.net/index.html のようになります. それから,通常の短縮URLサービスのように,URLを短縮し,ページに表示します.

この短縮URLがTwitterなどによって拡散され,多くのユーザに届けられたとします. ユーザが短縮URLにアクセスすると,まず本サイトにリクエストが送信されます (下図ではこのプロセスを省略しています). そして,CDNへのURLに展開され,ユーザはCDNへと転送されます. あとは,CDNのメカニズムにより適当なサーバにページがミラーされ,負荷が分散されます.

CoralCDN

このサイトでは,CoralCDN という無料CDNを利用しています. これは,米国の大学を中心に2004年から運営されているCDNです. 世界中に展開された70以上のDNSと300以上のキャッシュサーバで構成されており,毎日1千万以上のリクエストをさばいています. ただし,CoralCDNではアジア地域のサーバが不足しているため,日本からの応答が遅いことがあります. あまりに遅いときは,リロードすれば他のキャッシュサーバにアクセスしにいきますので,試してみてください.

CoralCDN を利用するために,契約などの手続きは不要です. URLのドメイン名末尾に .nyud.net を付与してください. このURLにアクセスすると,自動的にCDN上にキャッシュが作成され,以降のリクエストは分散されるようになります. なお,CoralCDN の負荷分散には,DHT という技術の亜種が利用されています.

API

bit.ly 類似のAPIを提供しています.詳しくはこちら (英文) をご覧ください.

ソフトウェア

このサービスで利用しているURL短縮・展開プログラムは,近日中に github で公開予定です.


東北地方太平洋沖地震 募金