Akamai Diversity
Home > Web Performance > そのNo-Storeコンテンツ、キャッシュ出来ませんか? - Part1

そのNo-Storeコンテンツ、キャッシュ出来ませんか? - Part1

弊社でお客様サイトのパフォーマンス計測をした際に、非常にアクセス数の多いページが No-Store に設定されている事が良くあります。
これは、そのページに対する全てのリクエストがオリジンサイドにフォワードされることから、オリジンインフラに大きな負荷を与えるだけでなく、レイテンシの増加によりエンドユーザーエクスペリエンスにも悪い影響を与える可能性があります。

キャッシュ設定が出来ないページには、No-Store設定が必要ないくつかの理由が考えられますが、アカマイプラットフォームを活用することで、この課題を解決しキャッシュヒット率を向上させる方法について考えたいと思います。


理由 1. パーソナライズコンテンツである

パーソナライズコンテンツのキャッシュを行うには、ユーザー固有の情報をページに直接埋め込むのを避け、Ajax呼び出しで取得する、もしくはJavaScriptなどでCookieから取得する事がベストプラクティスとなっています。

ベストプラクティスを適用されていないページに対しては、Dynamic Page Caching を利用することで、これらのページをキャッシュすることが可能になります。

例として、ログインユーザーのユーザー名と、ショッピングカート内のアイテム数を表示するページを考えてみます。


cart.png


エンドユーザーのログイン情報やショッピングカート内のアイテムの情報はCookieに含まれていることが多いと思います。この事から、アカマイプラットフォームにおいて、Cookieを確認し、未ログイン状態、もしくはショッピングカートが空の状態の場合には、キャッシュするように設定しておきます。


dpc.png


リクエストの大部分は、未ログイン、もしくはショッピングカートが空のユーザーからのものであることが多いことから、Dynamic Page Caching によってキャッシュヒット率を向上し、オリジンインフラの負荷を下げることが可能となります。


data.jpg


次回は、更新が頻繁に行われるコンテンツ、いつ更新されるか予測できないコンテンツについて考えたいと思います。

Leave a comment