【ウェブアクセラレータ】 トラブルシューティング

ウェブアクセラレータ トラブルシューティングは、運用段階で発生する疑問、トラブルの解消を目的に作成されています。 普段ウェブアクセラレータをお使いの中で疑問に思った際にはこちらをご覧ください。

【必読】ファイルがキャッシュされているかを確認したい

全てのトラブルにおいて、ウェブアクセラレータにファイルがキャッシュされているかどうかを一番始めに確認する必要があります。

  1. GoogleChrome でキャッシュしたいページを開きます。
  2. Windows の場合は Ctrl+Shift+i(アイ)、Mac の場合は Command+option+i(アイ)を押します。
  3. Network のタブを選択します。
../../_images/webaccel-troubleshooting-01.png
  1. Ctrl+Shift+R でページをリロードします。
  2. リロードが完了したら、キャッシュされていてほしいファイルを選択します。
../../_images/webaccel-troubleshooting-02.png
  1. 選択すると、下のような文字が表示されます。X-cacheの項目が「HIT」になっていればウェブアクセラレータに正常にキャッシュされています。「MISS」になっている場合は何らかの原因でキャッシュできていません。 ファイルがキャッシュされない の項目をご確認ください。
    ※初回アクセスはキャッシュがヒットしませんので、5〜6回リロードを行ってください。
../../_images/webaccel-troubleshooting-03.png

キャッシュヒット率が上がらない

キャッシュのヒット率が上がらない原因はいくつか考えられます。

  • キャッシュ設定が間違っていてそもそもキャッシュされていない。(この場合キャッシュヒット率がゼロになります)
  • キャッシュ時間の設定(s-maxage)が適切ではない

設定は正常でキャッシュされているもののキャッシュヒット率が低いままの場合は、キャッシュ時間の設定が適切でない可能性が高いです。 下の項目の「 適切なキャッシュ時間の設定値がわからない 」をご確認いただき、s-maxageの調整を行う必要があります。

キャッシュヒット率の適正値がわからない

適正なキャッシュヒット率を一概に提示することはできませんが、理想的な状態ではほぼ100%となります。 例えば、s-maxageが600(10分)で、10分間に1000万アクセスあった場合、オリジンサーバへ到達するキャッシュ取得は多くて2回程度ですので、 キャッシュヒット率は(1 - (2/1000万)) * 100となり、99.99998%になります。

なお、ウェブアクセラレータではキャッシュのHIT/MISSに関わらず課金されますので、オリジン側で転送量課金されるサーバを利用している場合は、 極限までキャッシュヒット率を高めることでコストを圧縮することができます。

具体例を挙げると、外部へのデータ転送が従量課金のクラウドをオリジンで利用している場合、 インターネットへ送信するトラフィックは1GBあたりの最高料金で$0.09(9円程度)かかるとします。 ウェブアクセラレータの場合は1GiB5円(税込)ですので、クラウドからエンドユーザへデータを配信するよりも、 ウェブアクセラレータのキャッシュを多く配信した方がお得になります。 キャッシュヒット率を上限まで高めることでコスト圧縮が望めます。

※一般的にクラウドコンピューティングの転送量課金は転送量が増えるほど安くなりますので、 ウェブアクセラレータが高価になる場合もあります。

もちろん、転送容量で課金されないオリジンサーバでも、キャッシュヒット率の上昇は負荷の低減につながりますので、 理想的にはキャッシュヒット率100%へ持って行くチューニングが安定運用には欠かせません。

適切なキャッシュ時間(s-maxage)の設定値がわからない

キャッシュ時間の設定はサイトやキャッシュするコンテンツにより異なりますので、お客様ご自身で調整頂く必要があります。 以下に挙げる設定は一例となります。

適切なキャッシュ設定をするにあたり、重要な指標は頻繁にコンテンツ更新が発生するかどうかとなります。

なお、どのような利用パターンでもキャッシュを長く設定すると、ファイルを更新してもキャッシュが長時間残ってしまう可能性が出てきますので、 s-maxageは600(10分)程度の短い設定から開始して、キャッシュヒット率が最大化でき、かつ更新などで不自由が生じない時間を模索することをおすすめします。

CASE1: 急ぎの修正等はなく、1日に1回程度しかキャッシュを更新しなくていい場合

s-maxage:86400

と設定すると1日キャッシュが有効になります。 もし緊急で画像などを更新した場合はキャッシュクリアAPIか、ウェブアクセラレータ管理画面のキャッシュ削除ページを利用します。 一度キャッシュされると1日は再取得が無いので、オリジンサーバの負荷を低減できます。 一度更新したファイルを上書きすることが殆ど無い場合は、キャッシュ時間は長めにするとウェブアクセラレータの効果を最大化できます。 なお、ウェブアクセラレータでの最大キャッシュ時間は1週間となりますので、s-maxageは604800が最大値となります。

CASE2: システムから生成される画像で、比較的頻繁に更新される場合

s-maxage:600

と設定すると10分のキャッシュとなります。 例え10分のキャッシュでも負荷が高いサーバであればかなり負荷を減らせると思われます。 更新頻度に合わせて、更新される頻度よりも短くキャッシュ時間を設定する必要があります。

注釈

キャッシュ削除API利用のススメ

キャッシュはできるだけ長く持った方が効果的ですが、前述の通りファイル更新の反映が遅れる弊害があります。 これはキャッシュ削除APIを利用して、ファイル更新→API経由でキャッシュ削除リクエストというシステムにすることで 長時間のキャッシュ保持とファイル更新時に古いキャッシュが残ってしまう現象を抑制することが可能になります。 大規模システム等でウェブアクセラレータ利用を検討されている場合は、合わせてAPIの利用をおすすめします。

上記具体例を参考にしつつ、基本的にs-maxageはできるだけ大きくするのがポイントです。

ファイルがキャッシュされない

上記確認方法 を試してキャッシュHITが確認できない場合の対処方法について解説します。

オリジンサーバ側での設定が漏れている

オリジンサーバ側で適切に設定されていない場合ファイルがキャッシュされません。下記のサポートページを参考に、ウェブサーバの設定ファイルをご確認ください。

【ウェブアクセラレータ】Webサーバ設定ファイルの記述方法

注意

キャッシュされないというお問い合わせの多くが、「s-maxage」の指定漏れや記述間違いが原因です。

CNAMEが設定されていない

独自ドメイン利用の場合、DNSでCNAMEが設定されていないとアクセスがウェブアクセラレータ経由にならず、キャッシュをすることができません。以下のリンクを参考に、DNSでCNAMEの設定を実施してください。
※CNAME設定は慎重に実施してください。