ここでは、ロードバランサーの設定について説明します。
ロードバランサーのスティッキーセッション機能(セッションの一意性保証機能、セッション維持機能、セッションアフィニティ機能とも呼ばれます)は、リクエストに付加されているセッションの識別情報(セッションID)をもとに、同じセッションのリクエストを同じWebコンテナへ振り分ける機能です。
セッションレプリケーション機能を使用する場合には、Webコンテナの前段に配置するロードバランサーにおいて、スティッキーセッション機能を有効にしてください。スティッキーセッション機能を有効にすることにより、異なるWebコンテナ間におけるセッションのリカバリーの頻発を防ぐことができ、リクエストの処理を安定させることができます。
ロードバランサーのスティッキーセッション機能には、次の設定を実施してください。
Webコンテナによって設定されるCookieに基づいてリクエストを振り分ける場合、スティッキーセッション用のCookieとして、Webコンテナが使用するセッションCookie名(デフォルトでは“JSESSIONID”)を指定してください。
WebコンテナによるURL書き換えに基づいてリクエストを振り分ける場合、スティッキーセッション用のパスパラメーターとして、Webコンテナが使用するパスパラメーター名(デフォルトでは“jsessionid”)を指定してください。
ロードバランサーによって設定されるCookieに基づいてリクエストを振り分ける場合、スティッキーセッション用のCookieとして、Webコンテナが使用するセッションCookie名(デフォルトでは“JSESSIONID”)以外の名前を使用してください。
ロードバランサーのスティッキーセッション機能のため、リクエストの振り分け先となるWebコンテナをロードバランサーの運用中に急激に増加させると、リクエストの振り分けが一時的に不均等になる可能性があります。この状況は時間の経過とともに緩和されますが、ロードバランサーの設定が可能な場合、次のような設定で緩和させることもできます。
ロードバランサーにおけるリクエストの振り分け制御方式を設定できる場合、ラウンドロビン方式ではなく、Webコンテナの負荷に応じて振り分け先を制御する方式に変更します。
ロードバランサーによっては、スティッキーセッション機能を利用するにあたって、セッションIDに対するWebコンテナの識別情報の付加を必要とするものがあります。セッションIDにWebコンテナの識別情報を付加するには、システムプロパティjvmRouteにWebコンテナの識別情報を設定します。
設定方法の例については、「5.5.2 スティッキーセッションの設定」を参照してください。
注意
Webコンテナの識別情報はセッションIDと同様にクライアントに送信されるため、クライアントに送信されるべきでない情報をWebコンテナの識別情報に含めないでください。
通常、ロードバランサーには、ヘルスチェック機能があります。このロードバランサーの機能によって、分散先のWebコンテナの稼動状況を監視し、故障したWebコンテナを自動的に振り分けの対象から除外することや、故障から復旧したWebコンテナを自動的に振り分けの対象に戻すことができます。
セッションレプリケーション機能を使用する際は、ロードバランサーのヘルスチェック機能を併せて使用することをお勧めします。