CDNとは何か?コンテンツ配信ネットワークがサイトを高速化する仕組み

CDNはウェブサイトのメインコンテンツをホスティングしているわけではない――データが移動する距離を短くするために、コンテンツの一部を訪問者に物理的に近いサーバーへコピーしているのだ。

オリジンサーバーとエッジサーバー

「オリジン」とは、ウェブサイトのファイルが実際に置かれているメインのサーバーのことだ。CDNは、地理的に多くの場所に分散した「エッジ」サーバーのネットワークを維持しており、そこにそのコンテンツのキャッシュ(複製)を訪問者に近い場所で保存している。

物理的な距離が読み込み時間に影響する理由

データは実在のケーブルや接続を通じて有限の速度で移動するため、ある地域の訪問者が別の大陸にあるサーバーからファイルをリクエストすると、両端の接続がどれだけ高速であっても、近くのサーバーからリクエストする場合より遅延が大きくなる。

CDNが典型的にキャッシュするもの

訪問者ごとに変化しない静的なアセット――画像、動画、スタイルシート、スクリプト、フォント――は、エッジでキャッシュしやすく、最もよく使われる対象だ。個人化されたコンテンツや常に変化するコンテンツは、一般に依然としてオリジンサーバーまで取りに行く必要がある。

アクセス急増を吸収する

多くの訪問者がオリジンに直接アクセスするのではなく、分散されたエッジサーバーから対応されるため、CDNはオリジンサーバー自体への負荷も軽減し、トラフィックが急増したときにもサイトの応答性を保ちやすくなる。

セキュリティ面での副次的なメリット

多くのCDNサービスは、大規模なトラフィックの集中攻撃(サービス拒否攻撃など)がオリジンサーバーに到達する前にフィルタリングしたり吸収したりする。これは、分散ネットワーク全体が単一のオリジンサーバーよりはるかに大きな総容量を持ち、急増したトラフィックを吸収しやすいためだ。

ほぼすべての大規模サイトがCDNを使う理由

CDNがなければ、世界中のすべての訪問者が、自分の所在地にかかわらず同じオリジンサーバーにファイルをリクエストすることになり、遠方の訪問者にとって読み込みが遅くなるだけでなく、負荷が一点に集中してしまう。その負荷を地理的に分散させることは、大規模なサイトにおいて体感速度を向上させる、最も費用対効果の高い方法の一つだ。

キャッシュには独自の複雑さもある

エッジサーバーは常に最新版を取りに行くのではなく複製を保存しているため、サイト運営者はコンテンツをどれくらいの期間キャッシュしておくか、元のファイルが変更されたときにどうそのキャッシュを無効化するかを管理する必要がある。そうしなければ、更新の直後に訪問者が一時的に古いコンテンツを目にしてしまうことがある。

よくある質問

CDNを使えば、サイトは自前のサーバーが不要になる?

いいえ。実際のコンテンツが管理・更新されるのは今も変わらずオリジンサーバーであり、CDNはその手前に置かれるキャッシュ・配信のレイヤーであって、オリジンサーバーを置き換えるものではない。

小規模なウェブサイトにもCDNは必要?

地理的に集中した読者層を持つ、アクセス数の少ないサイトではそれほど重要ではないが、小規模なサイトでも速度向上とトラフィック吸収によるセキュリティ上のメリットのためにCDNを利用することが多い。多くのCDNサービスは無料または低コストのプランを提供しているためだ。