2023.02.27
J-Stream CDNext
CDN
CDNext紹介
レスポンシブデザインを採用しているWebサイトなど、同じURLでもUser-AgentによってPC用やスマホ用などコンテンツの出し分けを行っている場合があります。そのような場合にCDNを利用する時には、今回紹介するJストリームのCDNサービス「J-Stream CDNext」の「Varyキャッシュ正規化機能」の利用が有効です。
Varyヘッダはサーバーが応答するHTTPヘッダの一種です。同じURLのコンテンツであっても、Varyヘッダに指定されている内容が異なる場合は、応答されるコンテンツが変わるということを意味します。つまり「Vary:User-Agent」という指定がある場合、クライアントのUser-Agentが異なると、同じURLであってもレスポンスされるコンテンツが変わるということになります。この指定を利用することで、PCからのリクエストにはPC用HTMLを、スマートフォンからのリクエストにはスマートフォン用のHTMLをレスポンスするような、コンテンツの出し分けが可能になります。
User-Agentにはクライアント側のOSの種類や、ブラウザ上にWebページを表示するためのエンジンのバージョン、ブラウザそのものの種類やバージョンなど複数の情報が含まれており、リクエストしてくるクライアントによって様々な組み合わせになります。
Jストリームが提供するCDNサービス「J-Stream CDNext」では、オリジンサーバーがVary:User-Agentを応答する場合、デフォルトの状態では同じURLのコンテンツであってもUser-agentごとにキャッシュファイルを保持します。つまりCDNを利用していても、Varyで指定されたルールに従ってコンテンツの配信が可能ということです。
User-Agentは前述の通り、複数の情報の組み合わせです。組み合わせの種類が一つでも異なると、User-Agentの値は変わります。例えば同じOSのPCからのアクセスであっても、ブラウザが異なればUser-Agentは変わります。CDNextのようにVaryヘッダに対応するCDNは、User-Agentの値が少しでも異なると、そのUser-Agent用に別のキャッシュファイルを保持してしまいます。つまり、サーバーが応答するコンテンツは同じなのに、User-Agentが異なるために複数のキャッシュコンテンツが出来てしまう場合があるということです。
コンテンツの出し分けが想定されるケースの多くは、PC用、スマートフォン用程度の粒度での出し分けであることが多いでしょう。細かいUser-Agentごとにキャッシュを分けて保持している必要は必ずしもありません。
上記のケースの問題は、User-Agentに含まれる値の組み合わせの種類は数千数万の単位で存在するということです。多くのアクセスを集めるWebサイトではUser-Agentの種類も増える傾向にあるため、キャッシュファイルもその分増えてしまいます。
それぞれのキャッシュファイルは、全く同じUser-Agentになるクライアントに対してしか配信されません。内容は同じコンテンツなのにキャッシュファイルがたくさん生成されてしまい、配信効率が低下してしまう恐れがあります。
またUser-Agentが異なるリクエストを受ける度にCDNはオリジンサーバーへの問い合わせを行うので、その回数も増え、CDNを利用しているにも関わらず、オリジンサーバーへ負荷をかけてしまう懸念もあります。
前述の懸念を解消するために、CDNextには「Varyキャッシュ正規化機能」が備わっています。これはVaryヘッダによって多数に分かれたキャッシュファイルを、利用しやすいように整える機能です。具体的には、User-Agentに含まれる特定の文字列が、指定の条件にマッチするかどうかという基準でUser-Agentをグループ化し、そのグループの数だけキャッシュファイルを生成するということができます。
グループは例えば「iPhone」や「Chrome」などの名称で登録します。このグループに当てはまる条件のリクエストがクライアントからCDNextに対してあった場合には、「iPhone」や「Chrome」などの形でオリジンサーバーへUser-Agentが通知されることになります。
設定はWeb管理画面上で行います。特定のルールによってグループ化したいUser-Agentのリストを作り、当該機能の利用にチェックを入れるだけで完了です。
この設定により、User-Agentの種類が膨大に増えてしまうことによる懸念を解消しながら、オリジンサーバー側で意図した通りのコンテンツの出し分けが可能になります。サーバー側で出し分けの設定がされている場合はこの機能の利用が大変有効です。
以上、User-Agentによる配信コンテンツの出し分けを行う時の注意点と、そのケースで有用なCDNextの機能について紹介しました。
Jストリームでは配信するコンテンツの特徴や仕様についても注意を行いながら、CDN導入の初期設定をエンジニアが直接サポート出来る体制を整えています。CDNの導入は初めてというお客様も多くいらっしゃいますので、まずは営業担当までお気軽にご相談下さい。
関連する記事一覧
CDNとは? ~ノンエンジニア向けにわかりやすく解説~ CDNとは? ~ノンエンジニア向けにわかりやす…
2023.04.19
J-Stream CDNext
速度改善
アクセス集中対策
CDN
CDNを導入することで「可用性の向上」「配信の高速化/表示速度の高速化」「コスト削減」「DoS/DDos攻撃対策」など… CDNを導入することで「可用性の向上」「配信の高速化/表示速度の高速化」「コスト削減」「DoS…
CDNのメリット・デメリットとは? トラブル回避して上手に… CDNのメリット・デメリットとは? トラブル回…
2023.04.19
J-Stream CDNext
パフォーマンス改善
CDN
CDN(Content Delivery Network)は多くのWebサイトで利用される利便性の高い技術ですが、使い… CDN(Content Delivery Network)は多くのWebサイトで利用される利便…
CDN導入の流れと費用イメージ CDN導入の流れと費用イメージ
2023.04.19
J-Stream CDNext
速度改善
アクセス集中対策
CDN
Web表示速度対策やアクセス集中対策として有効なCDN(Content Delivery Network)。今回は「C… Web表示速度対策やアクセス集中対策として有効なCDN(Content Delivery Ne…
CDNのキャッシュ動作とは? トリガーやタイミングについて… CDNのキャッシュ動作とは? トリガーやタイミ…
2023.03.30
J-Stream CDNext
CDNext紹介
CDNはオリジンサーバーへアクセスし、ファイルをキャッシュして配信していますが、CDNとオリジンサーバーは常に通信し合… CDNはオリジンサーバーへアクセスし、ファイルをキャッシュして配信していますが、CDNとオリジ…
CDNで実装できるアクセス制御設定:CDNext紹介 CDNで実装できるアクセス制御設定:CDNex…
2023.03.30
J-Stream CDNext
CDNext紹介
CDNには特定のルールでアクセスを制御することができる設定項目が備わっている場合があります。特定のユーザーにしかアクセ… CDNには特定のルールでアクセスを制御することができる設定項目が備わっている場合があります。特…
オリジンサーバーダウン、それでも配信を継続させるためにCD… オリジンサーバーダウン、それでも配信を継続させ…
2023.03.22
J-Stream CDNext
CDN
CDNext紹介
CDNはオリジンサーバーの負荷を軽減させ、快適な配信環境を提供するサービスです。しかし配信による負荷以外の理由でサーバ… CDNはオリジンサーバーの負荷を軽減させ、快適な配信環境を提供するサービスです。しかし配信によ…
Jストリームの
ソリューションに
興味をお持ちの方は
お気軽に
お問い合わせください。