オートスケール環境で運用する
最終更新日: 2021年12月14日
R8 | R9
AWS や Azure などのパブリッククラウド環境が提供する「オートスケール」サービスを利用することができます。ビルドした Wagby アプリケーション (wagbyapp) が1つ以上のインスタンスで実行されるため負荷分散、耐障害性の向上につなげることができます。
特徴は次のとおりです。
ロードバランサが必要です。なおロードバランサでは Sticky Session を有効にしません。利用者はどのwagbyappにつながってもよい状態となっています。
Wagby ではログオンする利用者ごとに「セッション」を作成します。セッションには利用者固有の情報が格納されており、ログオフするまでこれらは保持されています。
オートスケール環境では、このセッションに格納されている情報はキーバリューストアデータベースである Redis に格納されています。そのためどのインスタンスを使ってもセッション情報は維持されています。
オートスケール環境では、個々のインスタンスに割り当てられるIPアドレスを事前に知ることができません。そのためインスタンスごとに保持しているキャッシュ情報の整合性を保つためのメッセージ送受信はメッセージキューを使います。
クラスタリング方式では、起動しておくWebサーバ数は固定であり、それぞれのWebサーバは双方で通信できるよう、通信相手のURLを事前に知っておく必要があります。オートスケールは台数が可変です。
あらかじめ次のサービスを設定してください。(設定方法の詳細は割愛します。詳細はWagby代理店へお問い合わせください。)
"環境 > サーバ > オートスケール" 欄に用意されている "オートスケールを有効にする" をチェックします。
"オートスケールを有効にする" を設定したとき、メッセージキューサービスを有効にする必要があります。オートスケールは ActiveMQ を使います。"環境 > アプリケーション > ActiveMQ" 欄を設定します。
セッション情報の共有を行うため、HTTPPセッションに "Spring Session Redis" を指定します。同時に Redis サーバのパラメータを設定します。
オートスケール環境の動作テストシナリオの例を示します。
オートスケール環境に対応した Wagby アプリケーション (wagbyapp) を REST API サーバ専用として用いることで、サーバ部分の処理を Wagby に集約させることができます。
オートスケール環境に対応した Wagby アプリケーション (wagbyapp) で、ロック方式は「悲観ロック」「楽観ロック」いずれも利用できます。
Wagbyの標準は悲観ロック方式です。オートスケール環境では、悲観ロックはテーブルで管理する設定が自動的に有効になります。
悲観ロックテーブルは別途、データベースに用意する必要があります。[詳細...]
オートスケール環境では、Wagbyが提供するジョブスケジュールの起動方式として次のいずれかを指定することができます。
前者はエクスポート処理やプログラムによるデータ操作処理など、複数のインスタンスで実行する必要がない場合に有効です。後者はメンテナンスモード切り替えなど、複数のインスタンスで起動されることが必要な場合に有効です。
ジョブスケジュールで実行対象式を指定します。通常は "1インスタンス" を指定します。
オートスケール環境ではログ出力は wagbyapp/logs フォルダ内の system.log 等のログファイルに出力は行わず、標準出力に出力するように変更します。これは下記の理由によるものです。
ログを標準出力するようにするため、ビルド前にカスタマイズファイルを追加します。この修正方法についてはDocker向けのカスタマイズファイルをご覧ください。(このページの後半部で、修正ファイルをダウンロードできます。)
注意:この変更によって "管理処理 > システムログ閲覧"、"管理処理 > 統計情報"、ログを監視するジョブ(AlterMailFromLog)機能は利用できなくなります。(system.log ファイルが生成されないためです。)
オートスケールはUnlimited/Corporateライセンスのみで動作します。Projectライセンスではご利用いただけません。
オートスケール環境で、あるインスタンスのファイルを操作しても、他のインスタンスへ自動反映されるわけではありません。インスタンスはそれぞれ独立しており、また停止される場合もあります。停止されたインスタンス内のフォルダに保存したファイルは通常、インスタンスの停止時に消失します。これらのことから、ファイルの操作は次の点を配慮してください。
可能ですが非推奨です。オートスケールに対応したパブリッククラウド環境でお試しください。
Redis は必須ではありません。[詳細...]
MQ はキャッシュ以外にもジョブやアップロード更新などで利用しており、今後も利用するケースを増やす計画があります。そのため、オートスケール環境では MQ は必須であるとお考えください。
オートスケール環境とは
ロードバランサ
セッション情報の共有
キャッシュの整合性
クラスタリングとの違い
設定方法
パブリッククラウドの設定
Designerの設定
オートスケールを有効にする
メッセージキューの設定
設定欄 説明 例
送信先
"ブローカー接続" を指定します。(インメモリでは動作しません)
"ブローカー接続"
ブローカーURL
接続先のメッセージキューサービスのURLを設定します。例えば AWS であれば、Amazon MQ を有効にしたとき、そのサービスにアクセスするための URL がわかります。
ユーザ名
メッセージキューに登録したユーザ名を指定します。
パスワード
上記ユーザのパスワードを指定します。
HTTPセッションの設定
動作の確認
REST API サーバとして利用する
Redisの必要性
ロックの扱い
注意
ジョブスケジュールの制御
設定方法
システムログ閲覧
注意
仕様・制約
ライセンスの制約
技術情報
オートスケールに関連するその他の機能
ファイル操作に関する注意点
よくある質問と回答
オンプレミス環境でもオートスケールを試すことはできますか
Wagbyのオートスケールでは Redis や ActiveMQ といったサービスは必須ですか