CDNext の設定については全てのサイトに対して汎用的に最適となるようなテンプレートを用意することは難しく、導入するサイトに合わせた、設定が必要となります。
例えば毎秒数百件~数千件のアクセスがあるサイトであれば、TTL を1秒に設定するだけでもオリジンへの負荷軽減効果があるでしょう。あるいは、ユーザー毎に情報を出し分けしているようなページが多いサイトであれば、キャッシュさせないページを正しく設定しなければ個人情報の流出につながる可能性が考えられます。
では CDNext の設定を最適に行うためにはどのような確認をするべきなのか、ここでは基本的な2つの観点についてご紹介しようと思います。
■CDNext 利用時の基本的な確認観点
- コンテンツの更新頻度
- ユーザー毎に情報を出し分けしているようなページの有無
1.コンテンツの更新頻度
CDN を導入した際に頻発する問題としてコンテンツを更新したが反映されないという問題があります。
これは CDN でキャッシュを保持したことにより、オリジン側のコンテンツを更新しても TTL が有効な間は保持しているキャッシュ(古いコンテンツ)を表示してしまうことが原因であることが多いです。
また、CDN を導入した際にページの表示速度改善やオリジンへの負荷軽減に大きく影響があるのが画像ファイルです。画像ファイルは多くの場合、頻繁には更新されず、ファイルサイズも大きいためキャッシュを保持したことによる効果が出やすいコンテンツとなります。
- 更新頻度が高い ⇒ TTL 短めに設定
- 更新頻度が低い ⇒ TTL 長めに設定
極端な例であれば、コンテンツサイズが小さく更新頻度の高い html や script 系のファイルについては一切キャッシュ行わずに、画像ファイルだけをキャッシュするような設定であっても、CDN の導入効果は見込めるものとなります。
導入するサイトの各コンテンツの更新頻度を確認し、最適な TTL を設定することで CDN の効果を高めることができます。
2.ユーザー毎に情報を出し分けしているようなページの有無
ユーザー毎に情報を出し分けしているようなページを利用している場合にはユーザー毎に正しくページをレスポンスする設定が必要となります。
■案1.キャッシュを取得しない
ユーザー毎に情報を出し分けしているようなページのコンテンツへのアクセスがサイト全体として多くない場合などには、該当のページについては一切キャッシュしないといった対策が考えられます。
CDNext ではパスごとに詳細な設定が可能なため当対応策を実施できます。
■案2.ユーザー毎に情報を出し分けしているようなページの仕様を確認し、それに合わせた設定を行う
該当ページを Cookie やクエリによって出し分けている場合は、各値によってキャッシュを保持し分けることで、対応が可能です。
CDNext のデフォルト設定では Cookie やクエリの情報は考慮せずにキャッシュ取得とレスポンスを行うため、どの様な値が付いていても一番最初にキャッシュしたコンテンツをレスポンスします。
これはキャッシュ効率を上げるための仕様です。
キャッシュの取得に Cookie やクエリの情報を考慮する場合は、各値によってキャッシュを保持し分ける設定が必要となります。
以下は「cookey_one」、「cookey_two」という Cookie を利用してページを出し分けていた場合の設定例です。
上記設定により、「cookey_one」、「cookey_two」という Cookie については値毎にキャッシュを保持し分ける設定になります。
以下は「a」、「ex」という Cookie を利用してページを出し分けていた場合の設定例です。
上記設定により、「a」、「ex」という クエリ については値毎にキャッシュを保持し分ける設定になります。
ユーザー毎に情報を出し分けしているようなページを利用する場合は以上のような設定をご検討いただく必要があります。
CDNext をご利用いただく際はまず以上のような観点でお客様のサイトをご確認頂き設定をお試しいただければと思います。
hosts を使った公開前の動作確認方法については下記FAQをご参考下さい。
■hosts ファイル での公開前動作確認手順
https://support.cdnext.stream.co.jp/hc/ja/articles/360001811011
ご不明な点がありましたらお問い合わせフォームよりご連絡いただけますと幸いです。