コラム
2023/05/18

サーバー増強/CDN導入、その前に! Sitecoreのキャッシュ設定を解説

  • CMS
  • 運用

そもそも、キャッシュとは?

サーバー増強/CDN導入、その前に! Sitecoreのキャッシュ設定を解説ウェブサイトにおいて「キャッシュ」とは、以前にアクセスしたコンテンツの一部をメモリ等に保存する仕組みのことです。
ユーザーがウェブサイトに訪問したとき、ウェブサイトはデータベースにアクセスしてコンテンツデータを取得、ページとして返却するということを行っています。
一般的にデータベースへのアクセスは、システムとしては負荷(処理コスト)が高い処理です。

サーバーは同じコンテンツをリクエストされた際にキャッシュを使うことによって、データベースにアクセスせずページを表示させることができるため、ユーザーが同じウェブサイトを再度訪問する場合にページの読み込み速度(パフォーマンス)を向上させることができます。
また、サーバーの負荷も減ることになります。

キャッシュにはいくつかの種類がありますが、本記事ではSitecoreによる「サイト HTML (アウトプット) キャッシュ」を取り扱います。
このキャッシュは、サーバー側のキャッシュとなります。
誰かがウェブサイトのコンテンツにアクセスした際にサーバーで作成され、サーバーに設定されたキャッシュの有効期限を過ぎたり、サーバーのキャッシュ容量制限を超えたときに自動的に削除されます。

キャッシュはいいことだらけ?

キャッシュを使うと、パフォーマンス向上やサーバーの負荷軽減のメリットがあることを説明しました。
では、すべてのページをキャッシュしてしまったほうが良いかというと、そうではありません。

キャッシュを使用すると困ってしまうケースもあるため、何点かご紹介します。

例① ログイン認証機能を持つサイト

会員サイトでログイン機能を持つサイトで、ログイン後に「ようこそ、〇〇様」など会員個別の情報を表示している場合です。
このとき、ページをまるごとキャッシュを効かせてしまうと、別の人の名前が表示されてしまう等の問題が生じます。
会員個別の情報が他の人に見えてしまうことは大きなトラブルにつながるため、絶対に回避する必要があります。

例② パーソナライズによるコンテンツの出し分けを行っているページ

Sitecoreでは、会員ログイン機能が無い場合でもコンテンツの出し分けをすることが可能です。
このようなパーソナライズを行っているページについても、ページ全てをキャッシュしてしまうと「パーソナライズにより最適化して見せたかったコンテンツが表示されない」という問題が起きてしまいます。

例③ 検索や絞り込み機能を持つ動的なページ

検索や条件を指定したページの絞り込みの機能を持つ動的なページについても、そのままキャッシュされてしまうと意図しない結果が表示されてしまうことが考えられます。

キャッシュを利用するためには・・・? Sitecoreではキャッシュ設定が必要です!

上記のような問題を避けるため、Sitecoreはデフォルトでは「サイト HTML (アウトプット) キャッシュ」は使用しない設定となっております。
Sitecoreでは、ページ単位ではなく、ページを構成する部品(レンダリング)に対してキャッシュの設定をすることができます。
設定のオプションとして、「ログイン別に異なるキャッシュを使用」、「パラメーター別に異なるキャッシュを使用」、「クエリ文字列別に異なるキャッシュを使用」のように、キャッシュする条件を細かにコントロールすることができます。
レンダリング毎に使われ方を理解した上で、適切に設定する必要があります。

まとめ

当記事では、キャッシュとは何かを説明しました。
適切な設計が必要ですが、キャッシュ設定することによりサーバー負荷の軽減や、パフォーマンス向上に繋げられる可能性があります。

ウェブサイトのサーバー負荷が高い・・・ パフォーマンスがあまり良くないように感じる・・・
といった場合には、一般的な対策としてはサーバー増強や、CDNの導入ということが考えれますが、いずれも安くない費用がかかってくる対策となります。
まずは、キャッシュ設計・設定が適切かどうかを確認してみてはいかがでしょうか。

WEBSASではSitecoreで、多種多様なサイトのコンサルティングから企画、開発・構築、保守・運用までフルラインでサービスを提供しております。 サイトのリニューアル,構築,バージョンアップをご検討されている方やサイトの性能にお悩みの方は是非、実績と信頼で選ぶSCSKのWEBSASにお問い合わせください。

WEBSASくん