5.3. セッション外部管理

5.3.1. Overview

AWS環境でオートスケーリングを利用した場合に、スケールイン発生時にセッションなどのEC2インスタンス固有の情報は失われてしまう。 その為、ELBによるロードバランシングにおいてスティッキーセッションはOFF(デフォルト)とし、アプリケーションの構造としてどのEC2インスタンスに リクエストが割り振られた場合でも業務継続可能とする為の方式を示す。


5.3.1.1. AWS上での構成

セッション外部管理方式 に則って、AWS上では以下の構成とする。

Screen image of Session management.

Note

上記は、クラスタ化された Redisを使用した構成のサンプルを示している。Redis構成の比較については、従来の Redis と クラスタ化された Redisを参照されたい。


5.3.2. How to use

本ガイドラインでは、AWS環境固有の使用方法を示す。


5.3.2.1. エンドポイントの検索

クラスタ化された Redisを使用した場合のエンドポイントは、クラスタ化された Redis クラスタのエンドポイントの検索を参照されたい。

設定方法については、エンドポイントの設定 を参照されたい。

5.3.2.2. AWS環境での固有設定

Spring Session with Redisは、Redisのconfigコマンドを使用して初期化時に自動で設定を実施するが、ElastiCacheのようなマネージドサービスでは configコマンドが無効化されていてエラーになってしまうため、以下の設定が必要となる。 詳細については、SessionDeletedEvent and SessionExpiredEventを参照されたい。

  • application-context.xml
<!-- (1) -->
<util:constant
   static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/>
項番 説明
(1)
Spring Session with Redisの自動設定を無効化する設定を定義。