現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。2015の7日目の記事です。一覧はこちらこんにちは。システム統括本部プラットフォーム開発本部配信プラットフォーム部の大久保諒です。リクエストが来た際に使用できるキャッシュがない場合、オリジンサーバの負荷が増大する問題が存在します。リクエストを受け付ける可能性が高くなっており、この問題の重要性が高まっています。と他のキャッシュサーバ実装での対策について紹介していきます。バックエンドシステムのエンジニアの方はもちろん、スマートフォンアプリなどでサービスを提供するエンジニアの方々の参考になれば幸いです。ファイルなど静的(もしくは一定期間変更が発生しない)コンテンツをキャッシュすることで、突発的なリクエストの増加が起こった際のオリジンサーバの負荷を軽減しています。事業者を利用して行っているものと思われます。リクエストを仲介し、もし有効期間内のキャッシュが存在しなければオリジンサーバにリクエストを転送、キャッシュが存在すればキャッシュサーバ自身でレスポンスを返すことになります。した)場合に、キャッシュサーバに対してキャッシュを持つ(あるいはキャッシュが有効であることを検証する)までの期間に大量のリクエストが来た場合は何が起こるでしょうか。単純に「キャッシュが存在すればオリジンサーバにリクエストを転送しない」ロジックだけで動作してしまうと、キャッシュを持つまでの期間に来たリクエストはすべてオリジンサーバに転送されることになります。この動作では、「リクエストの増加が起こった際にオリジンサーバの負荷を軽減する」というキャッシュサーバを利用する目的を果たせなくなる可能性があります。この問題を解決する意義オリジンサーバの負荷が増大してレスポンスが悪化、あるいはそもそもレスポンスが返せない状況になった場合、もちろんながらサービスが想定通りに利用できなくなってしまいます。プッシュ通知をきっかけにユーザからのリクエストが殺到した際に、オリジンサーバがダウンしてしまい、誘導したコンテンツを参照できないような状況が起こり得ます。オリジンサーバの台数を増やすなどの対応も可能ですが、サーバやネットワークの設備増強や大量のサーバを運用するコストが生じてしまいます。プッシュ通知の例などリクエストが増加するタイミングをサービス提供者がコントロール可能であれば事前にキャッシュサーバにキャッシュを保持させることも可能ですが、リクエストが増加するタイミングで毎回そのための作業を実施するのはサービス運用コストを増大させてしまいます。キャッシュサーバでこの問題を解決することで、このようなコストを伴わずサービスの質を低下させずに済みます。した際の振る舞いに関する拡張仕様となります。キャッシュをクライアントに返すような振る舞いを許すことができます。キャッシュを返せるのですが、それに続くリクエストに対しては検証中はレスポンスをすぐに返さずブロックする振る舞いになっています。キャッシュをレスポンスできない仕様になっておりレイテンシの増加につながってしまいます。個に制限する機能が存在します。こちらはオリジンサーバからレスポンスヘッダが返ってくるまでは同時リクエストをブロックしない仕様になっているため、状況によってはオリジンサーバの負荷を軽減できない可能性があります。追加された新しいコア機能です。キャッシュを返却できる機能になっています。仕様を満たすような機能を実装することが求められています。個しか行わず、キャッシュを持つまでに複数のリクエストが来た場合はキャッシュを持つまでブロックするような挙動になっています。持つことで、キャッシュできないオブジェクトに対するリクエストをブロックせずオリジンサーバに転送することも可能です。ような振る舞いも記述できます。非推奨)ため運用する上で注意が必要です。オリジンサーバへのリクエストの転送の制御のための機能を提供しています。指定秒数後にオリジンサーバからのレスポンスが来ていなければオリジンサーバにリクエストを転送するなどといった細かい制御も可能です。与えることで可能です。キャッシュに対する最初のリクエストはキャッシュの更新が完了するまでブロックされるような挙動になっています。おわりにキャッシュシステムにおけるオリジンサーバの負荷増大問題に関する記事、いかがでしたでしょうか?普段キャッシュサーバの動作を意識しない方でも、サーバ側のこのような挙動を知っておくことは無駄にはならないと思います。参考になる点がありましたら幸いです。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。