Oracle Cloud Infrastructureドキュメント

セッション永続性

セッション永続性は、単一の論理クライアントから発生したすべてのリクエストを1つのバックエンドWebサーバーに送信するメソッドです。 パフォーマンスを向上させるため、またはログイン・セッションやショッピング・カートを有効にするためにキャッシュを使用するバックエンド・サーバーは、セッション永続性を利用できます。

サーバー側のクッキー・ドリブン・セッション永続性をサポートするには、ロード・バランサをHTTPモードで動作させる必要があります。 「バックエンド・セットを作成」のときにセッション永続性機能を有効にすることができます。 セッション永続性を構成するには、「クッキー名」を指定し、使用できないサーバーに対して「フォールバックを無効にします」を実行するかどうかを決定します。 「既存のバックエンド・セットを編集」を使用して、セッション永続性の構成を変更できます。

Cookie

ロード・バランシング・サービスは、バックエンド・サーバーが認識されたクッキー名を含むSet-Cookieレスポンス・ヘッダーを送信すると、セッション永続性をアクティブにします。 クッキー名は、バックエンド・セットの構成で指定された名前と一致する必要があります。 構成にマッチ・オール・パターン'*'が指定されている場合、サーバーによって構成されたクッキーはセッション永続性をアクティブにします。 バックエンド・サーバーがセッション永続性をアクティブにしない限り、サービスはロード・バランサの作成時に指定された「ロード・バランシング・ポリシー」に従います。

ロード・バランシング・セッション永続性機能が動作するには、クライアント・コンピュータがクッキーを受け入れる必要があります。

ロード・バランシング・サービスは、構成されたCookieおよびその他のリクエスト・パラメータのハッシュを計算し、その値をクッキー内のクライアントに送信します。 クッキーに格納された値により、サービスは後続のクライアント・リクエストを正しいバックエンド・サーバーにルーティングできます。 バックエンド・サーバーが定義されたCookieを変更すると、サービスはCookie値を再計算し、クライアントに再送信します。

警告

Cookieデータは、不透明なエンティティとして処理することをお薦めします。
アプリケーションでは使用しないでください。

セッション永続性を停止するには、バックエンド・サーバーがセッション永続性Cookieを削除する必要があります。 完全一致パターンを使用した場合は、すべてのCookieを削除する必要があります。 過去の有効期限付きのSet-Cookieレスポンス・ヘッダーを送信することによって、Cookieを削除できます。 ロード・バランシング・サービスは、構成されたロード・バランシング・ポリシーを使用して後続のリクエストをルーティングします。

ノート

IPアドレス駆動型セッション永続性

クッキーなしでセッション永続性サポートを提供する製品もあります。 これらの製品は、着信リクエストのIPアドレスによって異なります。 ISPプロキシおよび企業出口ゲートウェイは、単一のIPアドレスから多くのリクエストを発行できます。 この場合、1つのバックエンド・サーバーにトラフィック量が大きくなる可能性があります。 効果的なロード・バランシングが可能であっても、バックエンドのフリートは一度に1台のサーバーに圧倒される可能性があります。

IPアドレス駆動のセッション永続性のもう1つの弱点は、発信元のIPアドレスが変更可能であることです。 この場合、セッション永続性が失われたり、リクエストが間違ったバックエンド・サーバーにリダイレクトされたりする可能性があります。

Fallback

デフォルトでは、ロード・バランシング・サービスは、元のサーバーが利用できないときに、永続セッション・クライアントから別のバックエンド・サーバーにトラフィックを転送します。 このフォールバック動作を無効にするようにバックエンド・セットを構成できます。 フォールバックを無効にすると、ロード・バランサはリクエストに失敗し、HTTP 502コードを返します。 サービスは、クライアントが永続的なセッション・クッキーを提示しなくなるまで、HTTP 502を返し続けます。

警告

フォールバックが無効になっていると、将来の有効期限が遠いクッキーがクライアントの停止を引き起こす可能性があります。

ロード・バランシング・サービスは、既存の永続セッションでdrainとマークされたサーバーを使用できると見なします。 既存の永続セッションの一部ではない新しいリクエストは、そのサーバーに送信されません。