2023.03.22
J-Stream CDNext
CDN
CDNext紹介
CDNはオリジンサーバーの負荷を軽減させ、快適な配信環境を提供するサービスです。しかし配信による負荷以外の理由でサーバーダウンが発生してしまう場合もあるので、そうなるとCDNはコンテンツをキャッシュしに行く場所を失ってしまいます。配信の継続のためにCDNによって実現できることを、Jストリームが提供するCDNサービス「J-Stream CDNext」の機能を交えながら紹介します。
CDNは配信するファイルをキャッシュするために、エンドユーザーに代わってオリジンサーバーへアクセスします。
この時取得したキャッシュファイルは、CDNの管理機能などによって決められたTTLの秒数分はCDNのキャッシュサーバーで保持され、エンドユーザーへの配信に使われます。
TTLが切れると、CDNは再度オリジンサーバーへアクセスし、対象のファイルがオリジンサーバー側で更新されていないか確認します。このサイクルで、CDNはTTLによって決められた期間でキャッシュファイルの鮮度を保っています。
このサイクルの途中で、オリジンサーバーがダウンしてしまった場合、CDNはコンテンツをキャッシュしたり、更新したりすることができなくなってしまい、Webページの配信も停止してしまいます。このような時、CDNには何ができるでしょう?
Jストリームが提供するCDNサービス「J-Stream CDNext」の場合
といった対応が可能です。それぞれ解説していきます。
CDNextはオリジンサーバーを複数台登録して、マルチオリジン化させておくことができます。これにより、たとえばオリジンサーバー1号機がダウンしても、2号機が代わりに反応するような動きをさせることが可能です。マルチオリジン化させた場合の挙動についてはいくつかのパターンがあり、明示的に設定することが可能です。
オリジンサーバーを複数台登録した場合、CDNextはどのオリジンサーバーへファイルをキャッシュしに行くでしょうか。CDNextでは各オリジンサーバーにウェイトを設定することで、キャッシュサーバーから受け付けるアクセスに重みをつけた状態で、複数のオリジンサーバーを運用することができます。
例えばオリジンサーバー1号機に「8」、2号機に「2」というウェイトを設定した場合、そのウェイトの通り、その数字の割合に従って、キャッシュサーバーは各オリジンサーバーへアクセスしに行きます。両方に同じ数字を設定した際には、同じ割合でラウンドロビンのように運用することが可能です。
例えば2台登録したオリジンサーバーの内の片方を明示的にスタンバイ機として設定しておくことができます。これにより、メイン機が接続エラーかタイムアウトを起こしてしまった場合、スタンバイ機がCDNextのキャッシュサーバーからのアクセスに応答します。
上記に加えて、HTTPステータスコード500系のエラーが発生してしまった場合にも、バックアップ機にフェールオーバーさせることが可能です。標準の状態ではオリジンサーバーからの接続エラーかタイムアウトをきっかけにフェールオーバーしますが、明示的にステータスコード500の場合、502の場合、503の場合など、コードごとにフェールオーバーをさせるか否かを設定することができます。
あえて配信の継続はさせず、オリジンサーバーの不調によりWebサイトが表示できないことを伝える「Sorryページ」をエンドユーザーに配信することも選択肢の一つになります。特に工夫をしなければ単なるエラー画面が表示されるだけですが、「ただいま混み合っていますので少々お待ちください」などの案内があるだけで、比較して親切な対応となるでしょう。
CDNextにはオリジンサーバー不調時に、Sorryページを配信するためのオリジンサーバーを別途登録しておく機能があります。
先に述べたように、オリジンサーバーを複数台用意しておけば単純に冗長化構成を取ることが可能ですが、その手配が難しい場合はどのような対策が考えられるでしょう。CDNextではオリジンサーバーが1台のシングル構成の場合でも、配信を継続させるための機能を備えています。
CDNextはオリジンサーバーからファイルをキャッシュした後、あらかじめ設定されているTTLの秒数分は、そのファイルを最新のファイルとしてエンドユーザーに配信します。例えばTTLを300秒に設定していた場合、CDNextは300秒間の間、キャッシュしたファイルを配信し、300秒が経過したら、改めてオリジンサーバーへファイルが更新されていないか、現在キャッシュしているファイルが最新の状態のままか、確認のアクセスを行います。
その時オリジンサーバーがダウンしていると、通常の場合であればCDNextはファイルをキャッシュしに行く場所を失ってしまい、エンドユーザーにファイルを配信することができなくなってしまいます。この時利用できるのが、TTLの超過利用を許可する機能です。
CDNextがオリジンサーバーの不調を検知した時、まだキャッシュサーバーにはTTLが切れてしまったファイルが残ったままです。オリジンサーバーと通信が出来なかったので、このファイルが最新版であるかという確認は取れていません。しかし配信がストップしてしまうよりは、古いかも知れないキャッシュファイルを用いた配信を継続できた方が良いという判断が出来る場合、この機能の利用を採用することができます。
CDNextはオリジンサーバーが復調するまでの間、既に持っているキャッシュファイルを配信し続けます。TTLが300秒の場合であれば、再度300秒経ったらまたオリジンサーバーへアクセスし、まだ復調していなければ更に300秒間、持っているキャッシュファイルを配信します。これを繰り返すことで、エンドユーザーにはサーバーの問題を感じさせず、配信を継続させることが可能です。
TTLの超過利用を許可する機能は、オリジンサーバーの不調を感知したことをきっかけに発動します。これに対して、CDNextがオリジンサーバーに行う、キャッシュファイルの更新確認アクセスの結果を待たず、今持っているキャッシュファイルを配信してしまうという機能もあります。
これはオリジンサーバーの状態に関わらず、キャッシュファイルの更新確認よりも、TTLが切れていようがキャッシュファイルを持っているのであればそちらを配信してしまうことを優先するという機能です。オリジンサーバーの状態に問題が無ければ、キャッシュファイルの更新は併行して行われます。これは通常、オリジンサーバーが不調な時に一時的に利用することを推奨する機能です。
CDNextは様々なケースに合わせてオリジンサーバーをケアしたり、配信を継続させたりする機能を用意しています。エンドユーザーに対する配信の継続を重視するのであれば、マルチオリジン化し、オリジンサーバーのフェールオーバー機能を利用しつつ、TTLの超過利用を許可する設定をONにしておくのが最も安全でしょう。この時は、メインのオリジンサーバーの不調をCDNextが検知した際にバックアップのオリジンサーバーへフェールオーバーし、仮にバックアップのオリジンサーバーにも不調が見られた場合には、TTLが切れたキャッシュファイルを、メインのオリジンサーバーが復調するまで配信し続けることになります。エンドユーザーには、オリジンサーバーが2台もダウンしたとは思われないでしょう。
対して、更新頻度が高いWebサイトでは、あまりTTL切れのコンテンツを長く配信し続けることは推奨されないでしょう。古い情報を配信し続けることによって、エンドユーザーに誤った情報を伝えてしまう可能性があります。このような時はSorryページによって正直にサーバーの不調を伝えつつも、単にエラー表示を見せてしまうのではなく、配慮を込めた案内をするという対応も考えられます。
以上、オリジンサーバーのダウン時、不調時にリカバリが出来るCDNextの機能について紹介しました。
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のキャッシュ動作とは? トリガーやタイミングについて… 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には特定のルールでアクセスを制御することができる設定項目が備わっている場合があります。特…
CDNセールスパートナー支援機能:代理店アカウントによるホ… CDNセールスパートナー支援機能:代理店アカウ…
2023.03.22
J-Stream CDNext
CDNext紹介
Jストリームが提供するCDNサービス「J-Stream CDNext」は、セールスパートナー様にお取り扱い頂くことも非… Jストリームが提供するCDNサービス「J-Stream CDNext」は、セールスパートナー様…
Jストリームの
ソリューションに
興味をお持ちの方は
お気軽に
お問い合わせください。