CDNとは何か、わかりやすく解説

CDNの役割

CDNとは:コンテンツデリバリーネットワークの役割を解説 | We.Inc

CDNが訪問者の近くのエッジサーバーにファイルを複製する仕組み、キャッシュヒットとキャッシュミスの意味、エッジが保存できる内容を決めるCache-Controlヘッダーを解説します。

コンテンツデリバリーネットワーク(CDN)とは、世界中に分散し、サイトのファイルのコピーを保持するサーバー群です。訪問者にはオリジンではなく近くのエッジサーバーが応答するため、待ち時間が減ってページが速く表示され、自分のサーバーが処理するリクエストも大幅に減ります。エッジが何を保存できるかはCache-Controlヘッダーで決まります。

CDN用語を一言で

インターネットでは距離が時間のコストになります。新しい接続ではいずれも、最初のバイトが届くまでに何度も往復が必要です。CDNは読者の近くから応答することで、その往復を短くします。このガイドでは、その仕組み、CDNにできないこと、ヘッダーによる制御方法を、試せるシミュレーター付きで解説します。

よくある質問

CDNを使えばどのサイトでも速くなりますか?

サーバーから遠い訪問者にとっては、往復が短くなり接続も近くで確立されるため、たいていは速くなります。ただし、名前解決と接続が必要なドメインが1つ増える場合はかえってコストになることがあります。そのため、ホストを混在させるより、すべてを自分のドメインからCDN経由で配信するほうが良いのです。

s-maxageとは何ですか?

CDNのような共有キャッシュにだけ有効期間を設定するCache-Controlのディレクティブです。エッジではmax-ageより優先され、ブラウザーは引き続きmax-ageを使うので、エッジにはページを1時間、ブラウザーには1分間保持させるといった設定ができます。

CDNは動的なページをキャッシュできますか?

はい、レスポンスが全員に同じであれば可能です。数秒のキャッシュでも、アクセスの急増を吸収できます。ログインしたユーザーごとに異なるレスポンスは、共有キャッシュに保存してはいけません。

CDNはセキュリティ上のリスクになりますか?

コンテンツの経路に入る第三者がもう1つ増えることになります。サードパーティのCDNからスクリプトを読み込む場合は、Subresource Integrityのハッシュを追加し、改ざんされたファイルをブラウザーが拒否するようにしましょう。

CDNを自分で追加する必要がありますか?

多くのホスティングプラットフォームは、公開したサイトをすでにCDN経由で配信しています。キャッシュが2層になるとパージやデバッグが難しくなるので、2つ目を重ねる前にホストのドキュメントを読んでください。

リクエスト時に起きること

CDNでは解決できないこと

エッジで重要なCache-Controlディレクティブ

各ディレクティブがブラウザーとCDNに伝える内容

ファイルの種類別ヘッダー設定例

よく使う3つのポリシー

ハッシュ付きアセットは1年間保持し、HTMLはエッジで1分ごとに更新し、アカウントページは共有キャッシュに一切触れさせません。

Cache-Controlシミュレーター

ディレクティブを選んで、誰がレスポンスを保持できるかを確認します。

max-age(秒)

s-maxage(秒、なしの場合は空欄)

共有

public、private、no-store

immutableを追加

ブラウザー

CDNエッジ

保存可能、{n}秒間は新しいとみなす

保存してはいけない

保存できるが、再利用前にサーバーへの確認が必要

ヘッダーをコピー

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る