キャッシングとは?

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

学習目的

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

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

記事のリンクをコピーする

キャッシングとは?

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

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

ブラウザのキャッシュとは?

ユーザーがウェブページを読み込むたびに、ブラウザはそのウェブページを表示するためにかなりの量のデータをダウンロードしなければなりません。ページの読み込み時間を短縮するために、ブラウザはウェブページに表示されるコンテンツのほとんどをキャッシュし、ウェブページのコンテンツのコピーをデバイスのハードドライブに保存します。これにより、次回ユーザーがページを読み込む際には、コンテンツのほとんどがすでにローカルに保存されているため、ページの読み込みがより高速になります。

ブラウザは、これらのファイルを、Time to Live (TTL)の期限が切れるか、ハードドライブのキャッシュがいっぱいになるまで保存します。(TTLとは、コンテンツをどのくらいの期間キャッシュするかを示すものです)。また、ユーザーは必要に応じてブラウザのキャッシュをクリアすることもできます。

ブラウザのキャッシュをクリアするとどうなるか?

ブラウザのキャッシュがクリアされると、すべてのウェブページは、ユーザーの初回訪問時と同様に読み込まれます。最初に正しく読み込まれなかったものがキャッシュされていた場合、キャッシュをクリアすることで正しく読み込まれるようになります。しかし、ブラウザのキャッシュをクリアすると、ページの読み込み時間が一時的に遅くなります。

CDNキャッシングとは?

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

コンテンツ配信ネットワーク(CDN)

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

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

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

キャッシュヒットとは、クライアントデバイスがキャッシュにコンテンツを要求し、キャッシュにそのコンテンツが保存されている状態を指します。キャッシュミスとは、要求されたコンテンツがキャッシュに存在しない場合に発生することです。

キャッシュヒットの場合、CDNがコンテンツをすぐにエンドユーザーに届けることができるため、ユーザーはコンテンツをより早く読み込むことができます。キャッシュミスの場合、CDNサーバーはリクエストをオリジンサーバーに引き渡し、オリジンサーバーからの応答があった時点でコンテンツをキャッシュするため、後続のリクエストはキャッシュヒットになります。

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

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

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

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

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

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

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

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

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