インターネット上で情報をやりとりする際、速さと効率性はユーザー体験にも影響するため非常に重要です。本記事では、キャッシュサーバーの概要やCDNの役割、キャッシュ制御の重要性まで幅広く解説し、Webサイトのパフォーマンス向上に役立つ知識を提供します。
Web開発者やシステム管理者、ITコンサルタントの方に向けて、Webサイトの高速化につながるキャッシュサーバーの概要を紹介しますので、ぜひ参考にしてみてください。

キャッシュサーバーとは

キャッシュサーバーとは、ネットワーク上で頻繁にアクセスされるデータのコピーを保存し、オリジンサーバーに代わってデータの配信の肩代わりをするサーバーです。
オリジンサーバーは、元データを保持しており、キャッシュサーバーはそのデータの配信を効率化します。

Webサイトやアプリケーションのパフォーマンスを向上させるために用いられ、サーバーの負荷軽減や分散処理を実現します。
キャッシュサーバーと関連が深い、CDN(Content Delivery Network)についても理解しておきましょう。

CDNは、複数拠点に分散配置されたサーバーネットワークを利用して、よりユーザーに近い場所からコンテンツを迅速に配信するシステムです。
CDNにおけるキャッシュサーバーの仕組みは、以下のとおりです。

  • ユーザーがWebサイトにアクセスする
  • キャッシュサーバーへリクエストが発生
  • キャッシュサーバーは要求されたコンテンツを保持しているか確認する
  • コンテンツが存在する場合はキャッシュサーバーから直接提供し、存在しない場合はオリジンサーバーから取得してユーザーへ提供する

CDNにより、ユーザーはより近いサーバーからコンテンツを受け取れ、Webサイトやアプリケーションにおけるアクセス速度が向上します。

CDNにおけるキャッシュサーバーの役割

CDNにおけるキャッシュサーバーの役割は、Webサイトのパフォーマンスと信頼性を大幅に向上させるうえで非常に重要です。
おもな役割は、以下のとおりです。

  • サーバー負荷の軽減
  • ネットワーク帯域幅の節約
  • 表示・配信速度の改善
  • サービスの安定性と信頼性の向上

サーバー負荷の軽減

キャッシュサーバーはオリジンサーバーへのアクセス頻度を減らし、負荷を効果的に低減させます。これにより、オリジンサーバーはその処理能力をほかの重要なタスクに割り当てることが可能になります。

ネットワーク帯域幅の節約

CDNを使用することで、キャッシュサーバーが直接コンテンツを提供できるため、オリジンサーバーからのデータ転送量が大幅に削減されます。とくに、大容量のファイルや頻繁にアクセスされるコンテンツで顕著な効果を発揮します。

表示・配信速度の改善

ユーザーにより近いキャッシュサーバーからコンテンツを提供することで、レスポンス時間の短縮が期待できます。Webサイトの使用感が各段に向上し、ユーザーエクスペリエンス(ユーザー体験)が改善されるでしょう。

サービスの安定性と信頼性の向上

CDNでは、オリジンサーバーに障害が発生した場合でも、キャッシュサーバーにキャッシュがあるコンテンツは、配信が継続されます。結果として、サービスの安定性が高まり、ユーザーからの信頼性向上につながるでしょう。

キャッシュサーバーにおけるキャッシュ制御の重要性

キャッシュサーバーにおけるキャッシュ制御は、Webサイトのパフォーマンスと信頼性を維持するうえで非常に重要な要素です。
キャッシュ制御は、Web開発者がインターネット上でどのようにリソースをキャッシュするか指示する方法です。

Cache-ControlヘッダーはHTTPヘッダーの1つで、Webサイトの運営者がブラウザやCDNに対してキャッシュ方法を指示するための指示書のようなものです。以下は具体的な指示の例です。

  • 「このページは1時間だけキャッシュしてください。」
  • 「この画像は1週間キャッシュしても大丈夫です。」
  • 「この個人情報を含むページは絶対にキャッシュしないでください。」

Cache-Controlヘッダーには、さまざまなディレクティブ(指令)があり、それぞれが特定のキャッシュ動作を指定します。
一般的なキャッシュ制御ディレクティブは、以下のとおりです。

Cache-Control: max-age

max-ageは、クライアントの要求に応じてオリジンサーバーがコンテンツをレスポンスしてから何秒間そのコンテンツが有効であるかを指定するものです。指定の秒数を過ぎるまでキャッシュを利用します。

Cache-Control: s-maxage

s-maxage は共有キャッシュ(CDNなど)に特化したディレクティブで、max-ageと似たように動作しますが、クライアント側のブラウザなどでのキャッシュには適用されません。

Cache-Control:no-store

no-storeは、Webサイトや画像などのコンテンツをキャッシュサーバーやブラウザのキャッシュにまったく保持しないよう指示します。これは、機密情報を扱うページや、リアルタイムのデータ更新が必要な場面でとくに重要です。キャッシュされないため、ブラウザやキャッシュサーバーは毎回オリジンサーバーから最新の情報を取得します。

キャッシュ制御を適切に管理しない場合、以下のような問題が生じる可能性があります。

  • 古い情報の表示:最新情報が重要なサイトでの信頼性低下。
  • 不要なキャッシュ:頻繁に更新されるコンテンツの長期キャッシュは、ストレージの無駄遣いとなり、サイトのパフォーマンスを低下させます。
  • セキュリティリスク:機密情報の不適切なキャッシュは、情報漏洩のリスクを高めます。
  • パフォーマンス低下:不適切なキャッシュ設定はサーバー負荷を増加させ、ユーザー体験を悪化させる可能性があります。

このようにキャッシュ制御はWebサイトの運営において極めて重要です。適切なキャッシュ管理をおこなうことで、サイトの効率性、安全性、そしてユーザー体験を最適化することが可能です。

キャッシュヒット率はCDNの効果を評価する指標

CDNを効果的に運用するには、パフォーマンス指標を活用することが重要です。そのなかでも、キャッシュヒット率はCDNの効果を評価する重要な指標の1つです。
以下について解説します。

  • キャッシュヒット率とは
  • キャッシュヒット率の高い状態とは

キャッシュヒット率とは

キャッシュヒット率は、CDNがオリジンサーバーに代わってコンテンツの配信をおこなった割合を示す指標です。ユーザーからのリクエストに対して、CDNがすでに保持しているキャッシュコンテンツで応答できた割合を表します。
キャッシュヒット率の算出方法は、以下のとおりです。

キャッシュヒット率 = (キャッシュヒット数 / 総リクエスト数) × 100%

仮定として、あるWebサイトが1日に受け取る総リクエスト数が1,000リクエストだとします。このうち、CDNがキャッシュされたコンテンツで応答できたリクエストの数が800リクエストだった場合、キャッシュヒット率は以下のように計算されます。

キャッシュヒット率=(800/1,000)×100%=80%

この場合、キャッシュヒット率が80%となり、これはCDNが効率的に機能していることを示しています。

キャッシュヒット率の効果

キャッシュヒット率が高い状態は、CDNがキャッシュしているコンテンツをレスポンスし、オリジンサーバーにかかる配信負荷を高い割合で肩代わりできている状態を指します。一般的に80%以上のキャッシュヒット率は良好とされますが、Webサイトの性質によって適切な数値は変わります。

キャッシュヒット率は、セキュリティの観点からも重要な指標です。高いキャッシュヒット率は、オリジンサーバーへの直接的なアクセスを減らし、攻撃される可能性を縮小させる効果があります。

一方キャッシュヒット率が低い場合は、CDNを十分に活用できていません。クライアントからのリクエストにCDNだけで応答できず、オリジンサーバーの稼働が比較的多く発生している状態を意味します。

キャッシュヒット率が低い場合の対処法は、以下のとおりです。

  • キャッシュ設定の見直し:Cache-Controlヘッダーを適切に設定し、コンテンツのキャッシュ可能性を向上させる。
  • コンテンツの最適化:不要なクエリストリングを除外してキャッシュ可能なURLを増やす。
  • 動的コンテンツのキャッシュ戦略の検討:動的コンテンツでもキャッシュ可能な部分を識別し、キャッシュ戦略を適用する。
  • CDNの設定やプロバイダーの変更:より効果的なCDNサービスに変更する。

キャッシュヒット率を向上させることで、CDNの効果を最大限に活かし、サーバーの負荷を減らすことができます。
ただし、過度にキャッシュヒット率を追求すると、コンテンツの鮮度が失われる可能性があるため、適切なバランスを保つ必要があります。

さくらインターネットのCDNサービスをご紹介

さくらインターネットは、Webサイトのパフォーマンス向上に貢献するCDNサービスや、画像変換・配信サービスを提供しています。
以下では、「ウェブアクセラレータ」と「ImageFlux」について説明します。

ウェブアクセラレータ

さくらインターネットの「ウェブアクセラレータ」は、高速・安価を特徴とする国内向けWebコンテンツ配信サービスです。
ウェブアクセラレータは、さくらインターネットの広帯域バックボーンを利用して大容量の回線を東京・大阪の2拠点へ設置しており、低速な共用回線でコンテンツを配信している場合などに大幅な高速化が見込めます。
ウェブアクセラレータのキャッシュ関連機能は、以下のとおりです。

  • コンテンツの日本国内向け配信
  • キャッシュルールのカスタマイズ
  • キャッシュの即時削除機能

画像配信においても、ウェブアクセラレータを利用することで、大容量の画像ファイルを効率的に配信し、ページの読み込み時間が短縮します。

導入事例として、天気予報専門メディアの「tenki.jp」を日本気象協会と共同で運営している株式会社ALiNKインターネットがあげられます。地震発生時や気象の変化により増加する予期できないアクセスに対して、最新の気象情報を高速に配信するために、ウェブアクセラレータやさくらのクラウドが導入されました。

以前利用していた外資のクラウドサービスでは、グローバル展開しているため障害発生時の詳細情報の不足や、メンテナンスの時間帯の課題があげられました。
ウェブアクセラレータは国内のサービスであるため以前の課題を解決し、国内のネットワークから配信するため、配信の遅延を意識する必要がなく安定した運用を実現しています。
導入事例の詳細は、以下の記事をご確認ください。

【関連記事】tenki.jpで「さくらのクラウド、専用サーバ、ウェブアクセラレータ」を採用。予期できないアクセス増に対応

ウェブアクセラレータについてよりくわしく知りたい方は、以下のページからご確認ください。

ImageFlux

さくらインターネットの「ImageFlux」は、画像に特化したCDNサービスです。画像の最適化と高速配信を同時に実現します。
ImageFluxは、画像変換とコンテンツキャッシュをおこなうイメージサーバーと、管理コンソールから設定管理を一括でおこなうUIを提供するコンソールサーバーで構成されています。オリジンサーバーの設定と画像のURLを配信URLへ書き換えるだけで、最適化された画像が高速で配信されます。

ImageFluxの導入事例として、株式会社メルカリの事例を紹介します。
フリマアプリ「メルカリ」では、当時サービスの拡大にともない、画像配信コストが増大し続けていただけでなく、日々増え続ける膨大な商品点数は画像最適化を困難にし、デザイン変更の足かせにもなっていました。

画像配信には従来からCDNを利用していましたが、配信データ量の大幅な増加にともない、CDNのキャッシュヒット率の低下も顕著になっていました。
そこで、CDNとオリジンサーバーの間にImageFluxを導入。これにより、配信コストの削減に加えて、WebPフォーマットへの変換などで画像データの通信量を30%以上削減できました。また、ImageFluxによる動的なリサイズが可能になったことで、アプリのUIやデザイン変更にあわせて最適な画像を配信を実現しました。

導入事例についてくわしく知りたい方は、以下の記事をご確認ください。

ImageFluxの詳細については、ImageFluxの公式サイトでご確認いただけます。

まとめ

キャッシュサーバーは、Webサイトやアプリケーションのレスポンス速度を高め、サーバー負荷の軽減、ネットワーク帯域幅の節約など、多くの効果をもたらします。

さまざまな業界やサービスで活用されるキャッシュサーバーを効果的に導入するためには、自分のニーズに合ったキャッシュサーバーの選択、適切な設定、定期的なモニタリングと最適化が重要です。具体的な活用事例を参考にして、より効果的にキャッシュサーバーを活用しましょう。

さくらインターネットでは、「ImageFlux」や「ウェブアクセラレータ」のようなWebサイトのパフォーマンス向上に貢献するCDNサービスを提供しています。
サービスの詳細を知りたい方は、下記をご覧ください。

クラウド型の画像変換・キャッシュ配信サービス

ImageFluxのサービス紹介資料です。ImageFluxは、「画像変換サーバー」と「キャッシュ配信」を一気通貫で提供するクラウドサービスです。サービスを詳しく知りたい方は、ぜひご覧ください。

さくらのCDNサービス

ウェブアクセラレータのサービス紹介資料です。ウェブアクセラレータは突発的なアクセス増加や日々の負荷軽減まで、幅広く気軽にご利用いただけるCDNサービスです。サービスを詳しく知りたい方は、ぜひご覧ください。

構成・執筆・編集

ImageFluxチーム

さくらインターネットとピクシブで共同開発・提供している、クラウド画像変換サービス・ライブ配信エンジンサービス「ImageFlux」のチームです。

2024年11月28日公開

まずは体験してください。
すべての機能をお試しいただけます。

※サービスの詳細・お申し込みは、各サービスページをご確認ください。