2023.03.30
J-Stream CDNext
CDNext紹介
CDNはオリジンサーバーへアクセスし、ファイルをキャッシュして配信していますが、CDNとオリジンサーバーは常に通信し合っている訳ではありません。CDNはどのようなルールでオリジンサーバーからキャッシュを取得しているか、Jストリームが提供するCDNサービス「J-stream CDNext」を例に解説します。
《 目次 》
CDNはオリジンサーバーに代わってクライアントに対してファイルを配信する仕組みですが、CDNの導入によってオリジンサーバーが全くファイルを配信しなくなるわけではありません。クライアントがオリジンサーバーに対して直接リクエストを行うことが無くなったとしても、CDNは配信するファイルのキャッシュを取得するために、オリジンサーバーに対してリクエストをして、オリジンサーバーからファイルの応答を受けます。オリジンサーバーのアクセスログには、CDNのキャッシュサーバーのIPアドレスからアクセスされた履歴だけが蓄積されていくことになります。
ただしCDNとオリジンサーバーは常に通信し合っている訳ではありません。CDNは多くの場合、オリジンサーバーの配信負荷を軽減する効果を期待して導入されます。クライアントからのリクエストはなるべくCDNだけの力でレスポンス出来た方が、CDNサービスの利用効率が高いということになります。
ではCDNはどのようなタイミングでオリジンサーバーへファイルの取得を行うのでしょうか。「J-stream CDNext」の場合、クライアントから初回のリクエストが届いた時に初めてオリジンサーバーへ通信を行います。
CDNextはCDNとして機能するように設定が完了しただけの状態の時にはまだファイルをキャッシュしていません。初めてクライアントからのリクエストを受け取ったCDNextは、配信すべきファイルをキャッシュサーバーに保持していない状態なので、この時にオリジンサーバーへアクセスを行います。オリジンサーバーはCDNの要求に応えてファイルを配信し、この通信の際にCDNextはファイルをキャッシュすることになります。二人目のクライアントからリクエストが届いた際には、CDNは一人目のリクエストの時にキャッシュしたファイルを持っているので、オリジンサーバーへは通信を行わずに、配信を行うことができます。
CDNがオリジンサーバーへ通信してファイルをキャッシュすることをフェッチと呼びます。前述の内容を当てはめると、CDNextはクライアントからのリクエストをきっかけにフェッチの要求をオリジンサーバーに対して行う、ということになります。
ではフェッチが完了する前に二人目のクライアントからのリクエストが届いてしまった時はどうなるでしょうか。CDNextはまだファイルをキャッシュし切れていないので、二人目のクライアントに配信すべきファイルを持っていません。そのため、二人目のクライアントのリクエストをきっかけにしたオリジンサーバーへの通信も行われてしまうことになります。
例えばSNSを通じた告知を経由して同時にアクセスされる集客ページや、○時○分に一斉にオープンするWebページなどの場合、フェッチが済んでいないためにCDNの配信能力を十分に生かしきれない可能性があるばかりか、オリジンサーバーへの負荷も軽減出来なくなってしまうことがあります。そのような懸念がある場合には、予めフェッチを行っておく「プリフェッチ」の機能が有効です。プリフェッチはその名の通り、予めフェッチを行っておくことができる機能です。
これにより、まだ誰からのリクエストも受けていない状態のファイルであっても事前にキャッシュを用意しておくことができるので、同時刻一斉にWebサイトをリリースするような場合にはこの機能の利用が検討出来ます。
CDNextはファイルを決められた時間だけキャッシュします。この時間のことをTTLと呼びます。TTLはファイルやディレクトリなどの単位で設定することができますが、CDNextではデフォルトで300秒に設定されています。
TTLの期間内は、CDNextはそのキャッシュファイルを最新のファイルと認識して、クライアントへの配信を継続します。TTLが切れると、オリジンサーバー側でファイルが更新されているかも知れないと判断し、一度オリジンサーバーへ更新の有無を確認します。更新されていれば改めて更新後のファイルをキャッシュし、更新されていなければ今までキャッシュしていたファイルのTTLを0秒に戻し、そのまま配信を継続します。
CDNextではファイルごとにTTLの値を細かく設定することができます。例えば更新頻度の高いページは、オリジンサーバー側でのファイルの更新がすぐキャッシュにも反映されるようにTTLを短くしたり、滅多に変更されない画像コンテンツなどは長くしたり、というような工夫が検討出来ます。
TTLを長めに設定した方が、CDNextからオリジンサーバーへの問い合わせ回数を減らすことができるので、よりオリジンサーバーの負荷軽減に繋がります。ただしいざファイルの更新が必要な時すぐに反映されない点などは注意が必要です。むやみに長く設定をするのではなく、ファイルの性質に合わせて適切な設定を施すことが大切です。
CDNがオリジンサーバーに代わってファイルの配信を行った割合のことをキャッシュHIT率といいます。例えばキャッシュHIT率が90%の場合、9割のクライアントにはCDNのキャッシュからファイルを配信することができ、残り1割のクライアントからのリクエストへの応答にはオリジンサーバーの稼働を伴ったということになります。
キャッシュHIT率が高い方がオリジンサーバーの稼働を抑えられたということになるので、出来る限りこの数値を高める工夫をした方が良いでしょう。
たくさんのアクセスを集める人気コンテンツや、どのようなクライアントからのリクエストであっても同じファイルを配信する静的なWebサイトなどはキャッシュHIT率が高くなる傾向にあります。CDN側でもキャッシュHIT率を高めるための設定を施すことは可能ですが、配信するWebページ側の工夫によって改善できることもあるので、CDNを利用する際にはWebページ側の作りについても考慮すると良いでしょう。
以上、CDNがファイルのキャッシュを行う挙動について解説しました。Jストリームでは配信するファイルやWebサイトの内容をよくヒアリングしながら、適切な設定を行うサポートサービスを提供しています。専門のノウハウをもったエンジニアが、サービス導入の検討段階からアドバイスを行いますので、お気軽にご相談下さい。
関連する記事一覧
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で実装できるアクセス制御設定:CDNext紹介 CDNで実装できるアクセス制御設定:CDNex…
2023.03.30
J-Stream CDNext
CDNext紹介
CDNには特定のルールでアクセスを制御することができる設定項目が備わっている場合があります。特定のユーザーにしかアクセ… CDNには特定のルールでアクセスを制御することができる設定項目が備わっている場合があります。特…
オリジンサーバーダウン、それでも配信を継続させるためにCD… オリジンサーバーダウン、それでも配信を継続させ…
2023.03.22
J-Stream CDNext
CDN
CDNext紹介
CDNはオリジンサーバーの負荷を軽減させ、快適な配信環境を提供するサービスです。しかし配信による負荷以外の理由でサーバ… CDNはオリジンサーバーの負荷を軽減させ、快適な配信環境を提供するサービスです。しかし配信によ…
CDNセールスパートナー支援機能:代理店アカウントによるホ… CDNセールスパートナー支援機能:代理店アカウ…
2023.03.22
J-Stream CDNext
CDNext紹介
Jストリームが提供するCDNサービス「J-Stream CDNext」は、セールスパートナー様にお取り扱い頂くことも非… Jストリームが提供するCDNサービス「J-Stream CDNext」は、セールスパートナー様…
Jストリームの
ソリューションに
興味をお持ちの方は
お気軽に
お問い合わせください。