キャッシングとは?| Webサイトはどのようにキャッシュされるか?

キャッシュは、必要な場所にファイルをより迅速に配信するために、ファイルのコピーを保存します。

Share facebook icon linkedin icon twitter icon email icon

キャッシングとは?

学習目的

この記事を読み終えると、以下のことができます。

  • キャッシングの仕組みを説明する
  • いつ、どのようにコンテンツがキャッシュされるかを理解する
  • さまざまな種類のキャッシングを理解する
  • CDNがコンテンツをキャッシュする方法を学ぶ

キャッシングとは?

キャッシングとは、より迅速にアクセスできるようにするために、キャッシュ(一時的な保存場所)にファイルのコピーを保存するプロセスのことです。技術的には、キャッシュはファイルまたはデータのコピーの一時的な保管場所ですが、一般にこの用語はインターネット技術に関連して使用されます。DNSサーバーは検索を高速化するためにDNSレコードをキャッシュし、CDNサーバーはレイテンシーを低減するためにコンテンツをキャッシュし、WebブラウザーはWebサイトをより速く読み込むためにHTMLファイル、JavaScript、画像などをキャッシュします。

キャッシュの仕組みを理解するために、実世界での食料や備品の貯蔵所を思い浮かべてください。1912年に探検家のロアール・アムンセンが南極点到達に成功しました。彼の遠征隊は南極点に向かう途中で蓄えた食料で何とか生活していきました。そうすることの方が、移動しながら貯蔵基地から物資が届くのを待つよりもずっと効率的でした。インターネット上のキャッシュも同じような目的を果たします。ユーザーがWeb上を移動するのに必要な「物資」、つまりコンテンツを一時的に保存します。

CDNキャッシングとは?

CDN(Content Delivery Network)は、オリジンサーバーよりもエンドユーザーに近い場所にあるプロキシサーバー内でコンテンツ(画像、動画、Webページなど)をキャッシュします。(プロキシサーバーとは、 クライアントからリクエストを受け取って、ほかのサーバーに引き渡すサーバーのことです。)サーバーはリクエストを行うユーザーの近くにあるため、CDNはより速くコンテンツを配信できます。

Content Delivery Network (CDN)

CDNのことを、スーパーマーケットチェーンのようなものと考えてください。野菜を栽培している遠く離れた農場に出向くことなく、ずっと近くにある地元のスーパーマーケットで買い物をすることができます。スーパーマーケットは遠く離れた農場から配送される食料品を貯蔵して供給するので、客は数日ではなく数分で食料品を買うことができます。同様に、Webページをずっと速く読み込めるように、CDNのキャッシュはインターネット上にあるコンテンツを「保存」します。

コンテンツがキャッシュされる方法

ユーザーがCDNを使用してWebサイトのコンテンツを要求すると、CDNはそのコンテンツをオリジンサーバーから取得して、将来のリクエストに備えてそのコンテンツのコピーを保存します。キャッシュされたコンテンツは、ユーザーがそれを要求し続ける限り、CDNキャッシュ内に留まります。

キャッシュヒットとは?キャッシュミスとは?

キャッシュヒットとは、クライアントデバイスがキャッシュにコンテンツを要求し、そのキャッシュがコンテンツを格納している場合です。キャッシュミスとは、キャッシュが要求されたコンテンツを格納していない場合です。キャッシュミスの場合、CDNサーバーはリクエストをオリジンサーバーに引き渡し、オリジンサーバーが応答するとコンテンツをキャッシュするため、後続のリクエストはキャッシュヒットになります。

CDNキャッシュサーバーの配置場所

CDNキャッシュサーバーは世界中のデータセンターに配置されています。Cloudflareは、コンテンツにアクセスするエンドユーザーにできるだけ近い場所に配置できるように、世界200都市にCDNサーバーを分散させています。CDNサーバーのある場所のことを、データセンターとも言います。

キャッシュされたデータはどれくらいの期間CDNサーバーに留まるか?

Webサイトが要求されたコンテンツでCDNサーバーに応答するとき、コンテンツを保管する期間をサーバーに知らせる情報を添付します。この情報は、HTTPヘッダーと呼ばれるレスポンスの一部に保存され、コンテンツをキャッシュする期間を秒単位、分単位、または時間単位で指定します。この期間のことをTime-To-Live(TTL)と呼びます。TTLが期限切れになると、キャッシュはコンテンツを削除します。一部のCDNは、コンテンツがしばらく要求されない場合やCDNの顧客が特定のコンテンツを手動で削除した場合、期限切れになる前にファイルをキャッシュから削除します。

ほかの種類のキャッシングの仕組み

Webブラウザーキャッシングは、ブラウザーがユーザーデバイスのハードドライブ上にあるWebサイトからのファイルのコピーを保存するときに行われます。Webページがキャッシュされると、ブラウザーはページの新しい部分または更新された部分のみを読み込むだけで済むので、インターネットの速度が遅くてもページを素早く配信できます。ブラウザーはTTLの期限が切れるまで、またはハードドライブのキャッシュがいっぱいになるまで、そうしたファイルを保存します。ユーザーは、必要に応じて、ブラウザーのキャッシュを削除することもできます。

DNSキャッシングは、DNSサーバー上で行われます。サーバーは、ネームサーバーに対してクエリを実行せずにドメインのIPアドレスに即座に応答できるように、最近のDNSルックアップをキャッシュに保存します。

検索エンジンは、アクセスしようとしているWebサイトが一時的にダウンしている状態または応答できない状態であっても、クエリに応答するために、検索結果に頻繁に表示されるWebページをキャッシュする場合があります。

Cloudflareはどのようにキャッシングを使用するか?

Cloudflareは、全世界に分散された200のPoPを通じてCDNを提供します。Cloudflareでは、無料のCDNキャッシングサービスを提供していますが、有料のCDNを利用するお客様は、コンテンツをキャッシュする方法をカスタマイズできます。エニーキャストネットワークなので、同じコンテンツをどのPoPからでも配信できます。ロンドンにいるユーザーとシドニーにいるユーザーの両方が、ほんの数キロ離れたところにあるCDNサーバーから読み込まれた同じコンテンツを閲覧できます。