荒木靖宏 (yasu@debian.or.jp,
ar@debian.org)
![]() |
Content Delivery Network (CDN) はウェブコンテンツ配置および配送方法として Akamai 社によりサービスされ広く知ら れることになった。 当初から一部の人気の高いサーバへのトラフィック集中によるサーバ停止の回避、 海外のリッチコンテンツ 取得の高速化、 トラフィック分散によるネットワークおよびサーバの利用平準化などの理由で広く受け入れら れた。
CDN という用語自体は WWW に限ることなく、 一般にコンテンツを取得するための配送手段や方法全体を指す場合があ る。 たとえば、 Winny や Bittorrentなどのコンテンツを取得するために特別に設計されたプロトコルを用いて、 P2P ネット ワークを構成するような手法も含まれる。
deb http://cdn.debian.or.jp/debian/ stable main contrib non-free
deb-src http://cdn.debian.or.jp/debian/ stable main contrib non-free |
以上のように指定するだけでユーザは今までとなんら変わることなく apt コマンドを使用できる。 サービス時の手順と構成は 以 下 の よ う に な る 。 (図 3)
CDN システムが完全に動作しユーザから使用されるためには、 システムが完全なファイルを提供すること、 システムが安定し て動作すること、 そして CDN を使った場合に高速に動作していることが求められる。
提供ファイルの完全性
このために以下二点を満たさねばならない。
前者については、 deb はそのファイルの md5 値、 sha1 値とともに配布され、 ユーザが使用する apt で確認後に利用されるため CDN を使用した場合でも問題にならない。
後者についてはユーザが apt-get update を行ったときに接続する Surrogate と apt-get dist-upgrade を行ったときに接続す る Surrogate は同一であるとは限らないため、 DNS が Surrogate として返すサーバが保持するファイルは同一である必要があ る。 cdn.debian.or.jpでは Debian プロジェクトで一般に行われている方法と同様に、 rsync プロトコルを用い、 push ミ ラーを行っている(図2) 。 そのため、 cdn.debian.or.jpのサロゲート内で最上流にあるサーバとミラーが同一であること を 2 分毎に rsync ミラー終了時に作成されるスタンプファイルを確認して、 同一でないサーバはサロゲート候補から一時的に 除外している。
システムの安定動作
先に述べたように、 ユーザは CDN を使用する際には DNS を最初に使用するため、 DNS の安定運用がカギと
なる。 そのため、 cdn.debian.or.jp を管理する DNS サーバはまったく独立に動作するサーバで行って
いる。
また、 サーバの動作を確認は、 5 秒以内に HTTP のレスポンスを返さないサーバはサロゲート候補から一時的に除外して いる。
高速動作
cdn.debian.or.jpでは DNS で問い合わせされるとサロゲートリストとして複数の IP アドレスを返す。 この IP アドレス
はラウンドロビンで選択しているわけではなく、 サーバキャパシティやネットワーク速度を考慮し、 設定して
いる。
ここまで説明してきた、 cdn.debian.or.jpの動作には改善すべき点が多数存在する。 改善の展望としていくつか挙 げる。
apt-get コマンドは HTTP REDIRECT に対応していない。
HTTP REDIRECT は、 いったん HTTP GET などで接続してきたクライアントに対して、 新たにそのリソースが存在する URL を通知するものである。 この仕組みをうまくつかった CDN として、 Coral Content Distribution Network (Coral CDN) がある。 Coral CDN はサロゲート間で P2P によるファイル配置し、 そのインターフェースとして、 HTTP を使用し、 しかも使用にはインターネットから取得可能なファイルであれば制限をかけていない。 さらに、 Apache を使った一時配布サー バでは HTTP REDIRECT をつかって Coral CDN に誘導することも推奨されている。 ただし、 現状で、 Coral CDN を使 うために、
deb http://cdn.debian.or.jp.nyud.net:8090/debian/ stable main contrib non-free
|
を指定することも可能だが、 少なくとも日本においては Coral CDN を担うサロゲートが存在しないこともあって非常に低速 である。 ただし韓国や中国では広くつかわれており、 将来の拡張に使用したい。
global に CDN を展開する場合には地理的に近いサーバ群からある程度絞込むのが有効である。 現在、 GeoIP など無料で IP と 地理情報のマッピング提供者が現れており、 この活用は cdn.debian.or.jpの次の拡張として最有力だと考えて いる。
現在、 http://wiki.debian.org/DebTorrent や http://www.cs.sfu.ca/~camerond/personal/GoogleSoCDebian.html で apt の Bittorrent 対応が進められており、 有力な候補である。 ただし、 Bittorrent プロトコルをクライアントで直接使う ものであり、 ネットワーク利用ポリシーとの競合や install 時に利用可能なのかなど今後検証すべき問題も 多い。
いつでも必要なソフトウェアやコンテンツを安価に入手する手段として CDN はこれからも様々な発展を続けると考える。 Debian は deb の安定入手手段の有無がシステムの信頼性を左右するシステムであり、 CDN の広範な活用が今後ますます求め られるようになると考える。
第
31 回東京エリア Debian 勉強会 2007 年 8 月
____________________________________________________________________________________________