ここでは、セッションレプリケーションを使用する場合の運用方法について説明します。
セッションストアの操作や各種情報の参照は、パブリッククラウドのポータル画面もしくはパブリッククラウドでサポートされているCLIから行います。
参照
セッションストアの操作方法や各種情報の参照方法については、利用するパブリッククラウドサービスのドキュメントを参照してください。
セッションストアは、セッションストアの設定変更やバージョンアップなどにより再起動が必要になる場合があります。
運用中にセッションストアを再起動した場合、Webアプリケーションのレスポンスが一時的に劣化したり、クライアントからのリクエストがタイムアウトしたりする可能性があります。
運用中にセッションストアを再起動する必要がある場合は、トラフィックの少ない時間に実施してください。
参照
セッションストアを再起動する手順については、利用するパブリッククラウドサービスのドキュメントを参照してください。
セッションストアは、複数運用することができます。
使用するセッションストアを業務ごとに分けることによって、他の業務からの影響(パフォーマンスの影響、障害発生時の影響など)を受けることなく運用することができます。
セッションストアを業務ごとに分ける例
セッションストアは、Webコンテナからセッションのバックアップやリカバリーのための通信を受け付けます。このとき、不正なクライアントからの通信を受け付けないように、適切なアクセス制限を行ってください。
パブリッククラウドのRedisサービスでは、接続を許可するIPアドレスの制限といったセキュリティ対策が提供されています。
参照
セッションストアへのアクセス制限の設定方法については、利用するパブリッククラウドサービスのドキュメントを参照してください。
セッションストアでは、データを保持できる容量上限の設定が存在します。パブリッククラウドのRedisサービスでは、セッションストアを配備するときのリソースに応じて、自動的にデータを保持するメモリーサイズ上限(maxmemory)が決まります。この設定値を超えた場合、セッションストアではエビクションポリシー(maxmemory-policy)に沿った処理が行われます。ポリシーによっては、特定のセッションがストアから削除されたり、新規セッションのバックアップが行われなかったりします。
ストアから削除されたセッションは、その後バックアップされるまでセッションストアに存在しないことになります。そのため、そのセッションに対するリカバリー要求があった場合(Webコンテナダウン時など)、そのセッションはリカバリーできません。
セッションストアからエビクションポリシーで削除されてもWebコンテナで保持されるセッション自体が破棄されたわけではないため、セッションのリカバリーが必要な障害が発生しない限りはそのセッションについての業務は継続可能です。このとき、このセッションは使用されることにより再度バックアップされます。
いずれのエビクションポリシーを選択したとしても、Webコンテナで保持するセッションのバックアップがなくなり、リカバリーできなくなるリスクがあります。また、ポリシーによっては、セッションストアへの再バックアップが頻発する可能性があります。そのため、セッションストアの設定では、メモリーサイズ上限について不足が起きないように、セッションストアのスペックやクラスタリングのシャード数を十分に確保してください。また、業務ごとにセッションのバックアップ先となるセッションストアを分けることで、メモリー使用量を抑制することができます。
アプリケーションの特性に応じて、エビクションポリシーを選択してください。なお、エビクションポリシーの中でも、乱択なアルゴリズム(allkey-random, volatile-random)は指定しないでください。セッションレプリケーション機能で管理されるデータの整合が取れなくなる可能性があります。
参照
エビクションポリシー設定の詳細については、利用するパブリッククラウドサービスのドキュメントを参照してください。
セッションストアを運用する環境を変更し、既存のセッションストアのデータを移行したい場合、パブリッククラウドで提供されているRedisサービスのエクスポート・インポート機能を利用してください。
データ移行を行う際は以下の手順で行ってください。
GlassFish Serverクラスターを停止します。
移行前のセッションストアの環境から、データをエクスポートします。
2.でエクスポートしたデータを移行先のセッションストアの環境へインポートします。
セッションレプリケーション機能に関するGlassFish Serverクラスターの以下の定義項目を、移行先のセッションストアの環境に合わせて修正します。
セッションストアのホスト名
セッションストアのポート
セッションストアのユーザー名
セッションストアのパスワード
設定方法については、「5.17.4 セッションレプリケーションマネージャーの設定」を参照してください。
GlassFish Serverクラスターを起動します。
手順に従わなかった場合、データの不整合が発生し予期せぬエラーが発生する場合があります。
業務の初期化やメモリーなどの運用資産を解放するために業務システム上のセッションをすべて消去したい場合、GlassFish Serverクラスターをいったんすべて停止し、セッションストアに格納されているデータをすべて削除した上で、GlassFish Serverクラスターを再起動してください。
セッションレプリケーションの機能上、個々に停止/再起動を行っただけでは、再バックアップや、バックアップされているセッションのリカバリーが発生するため、すべてを消去することができません。