セッション永続化とは、「セッション」の継続中、またはタスクやトランザクションが完了するまでの間、クライアントからのリクエストを同じバックエンドのWebサーバーまたはアプリケーションサーバーに転送することを指します。

トラフィック量の多いWebサイトには、数十万、場合によっては数百万ものユーザーに高速かつ安定したサービスを提供できる能力が求められます。IT部門では、このような大量のアクセスに対応するため、複数のサーバーを一般に「サーバーファーム」と呼ばれるグループにまとめます。ロードバランサーはサーバーグループの前段に配置され、効率を最大化できるように各サーバーへトラフィックを振り分けます。

ユーザーがWebサイトを5分間閲覧すると、複数のバックエンドサーバーから情報を取得する可能性があります。Webブラウザやバックエンドサーバーが、ユーザーの次の操作を迅速化するための情報を保存してWebエクスペリエンスを向上させようとする場合、アクセス先が毎回同じサーバーでないと問題が生じることがあります。この場合、ユーザーからのすべてのリクエストを同じサーバーに送信することが重要です。むしろ必須と言っても過言ではありません。

パフォーマンスを向上させるため、バックエンドサーバーは、ユーザーがリクエストしたデータをキャッシュするだけでなく、今後リクエストされる可能性があると判断した追加情報を事前にキャッシュすることがあります。大容量ドキュメントのダウンロードなど、ユーザーには1つのリクエストに見える処理でも、実際には複数のリクエストとレスポンスのトランザクションに分割され、クライアントとサーバーの間で送受信されることがよくあります。ユーザーがリクエストした情報を最も効率よく受信するには、その情報をすでにキャッシュしているサーバーにアクセスする必要があります。

また、フォームへの入力、製品の購入、アカウントのアップグレードなど、複数の手順を要するトランザクションをユーザーが行う場合もあります。トランザクションを円滑に進めるには、クライアントとサーバーがデータを交換する際に、セッションの状態情報(コンテキスト)を保存する必要があります。この場合、セッションパーシステンスにより、トランザクションを正常に完了しやすくなります。

ロードバランサーまたはアプリケーションデリバリーコントローラー(ADC)は、サーバーグループの前段に配置され、必要な期間にわたってユーザーセッションを特定のサーバーに関連付けるロジックを実装します。

NGINX Plusはどのように役立つのか

NGINX PlusとNGINXは、Dropbox、Netflix、Zyngaなど、トラフィック量の多いWebサイトで利用されている最高クラスのロードバランシングソリューションです。世界中で3億5,000万以上のWebサイトが、コンテンツを迅速かつ確実、安全に配信するために、NGINX PlusとNGINX Open Sourceを利用しています。

ソフトウェアベースのロードバランサーであるNGINX Plusは、同等の機能を備えたハードウェアソリューションよりも大幅に低コストです。NGINXは、Cookieやスティッキールートの使用など、複数の方法でセッション維持をネイティブに管理します。