定義
コンテンツデリバリーネットワーク(CDN)は、動画や画像といったデータを世界各地のサーバーにあらかじめコピーしておく技術です。誰かがアクセスすると、元のサーバーの代わりに、その人に近いサーバーがファイルを届けます。データが行き来する距離が短くなるので、待ち時間が大きく減ります。
近所の倉庫にあらかじめ置いておきます
宅配便を思い浮かべてみてください。地球の裏側の工場から一つひとつ送っていたら、何日もかかります。でも同じ品物を近所の倉庫に積んでおけば、注文してからいくらも経たないうちに受け取れます。
インターネットも事情は似ています。海の向こうのサーバーから動画をそのまま受け取ると、データが海底ケーブルに乗って長い道のりを往復しなければなりません。信号がどれだけ速くても、距離が遠ければ行き来に時間がかかります。
そこでサービス会社は、人気のあるファイルを世界各地のサーバーにあらかじめコピーしておきます。東京からアクセスすれば東京の近くのサーバーが、パリからアクセスすればパリの近くのサーバーが代わりに答えます。こうして散らばせた倉庫の一つひとつを、利用者のすぐそばに置かれたエッジサーバーと呼びます。
おかげで海外の動画も、ボタンを押したとたんに再生されます。ファイルが海を渡ってきたのではなく、隣町から届いたようなものだからです。
お客さんが一度に押し寄せても持ちこたえます
人気ドラマが公開される瞬間を思い浮かべてみてください。同じ時間に何百万人もが同じ動画を再生します。元のサーバー一か所でこの要求をひとりで受け止めていたら、すぐに息が上がってしまいます。
コピーをあちこちに散らしておくと、話が変わります。アクセスは各地域のサーバーに分かれて入っていき、元のサーバーはそのうちの一部だけを相手にすれば済みます。背負うべき荷物を細かく分ける、というわけです。
この仕組みは攻撃を防ぐのにも使われます。一度にアクセスを浴びせてサービスを止めようとする試みがあっても、世界に散らばったサーバーが分担して受け止めれば、持ちこたえやすくなります。元のサーバーの住所が外に出にくいことも助けになります。
ですからオリジンサーバーをお客さんの前に直接立たせないことが、この方式の大きな利点です。店先にレジをいくつも置いて、本社のオフィスが混み合わないようにするのと似ています。
もう少し正確に言うと
もう少し正確に言うと、この技術がインターネットそのものを速くするわけではありません。データが通る道が広くなるのではなく、行き来すべき距離が短くなるだけです。ですから、距離のせいで生じていた待ち時間が主に減ります。
近くのサーバーにコピーがないこともあります。誰も探さなかったファイルなら、そのサーバーが元のサーバーまで一度取りに行かなければなりません。この最初の要求はふだんより遅く、その代わりあとはコピーが残るので速くなります。
買い物カゴの中身のように人ごとに違う情報は、あらかじめコピーしておけません。こうした要求は結局、元のサーバーまで往復することになります。ですからこの技術は、大勢が同じように受け取るサイズの大きい共通のファイルでいちばん力を発揮します。
オリジナルが変わったのにコピーがそのまま残ると、古い画面が見えてしまうこともあります。そこでコピーに有効期限を設けたり、ファイル名を変えて新しいコピーを取りに行かせたりする方法を併せて使います。
よくある誤解
CDNを使えば、自分が使っているインターネットの速度そのものが速くなる。
回線が広くなるわけではありません。データが行き来する距離が短くなって、待ち時間が減るということです。
CDNをつければ、元のサーバーはもう必要なくなる。
コピーのもとになるオリジナルはそのまま必要です。人ごとに違う情報や、はじめて要求されるファイルは、元のサーバーが引き受けて処理します。
日常で出会う場面
海外の動画サービスで新しい話を再生したとき、国内の通信網の中にあるサーバーが代わりに動画を届けてくれます。
いくつものサイトが共通で使うウェブフォントや画像が、どこからアクセスしても同じくらい速く表示されるのも同じ原理です。
つまり ひとことで
人気のあるファイルを世界各地にあらかじめコピーしておき、アクセスした人に近いサーバーが届けることで、待ち時間とサーバーの負担をまとめて減らす技術です。