クラスタ環境構築の準備
先日は、SJS Application Server 9.1 EEを1台のマシンにインストールし、
ドメイン管理サーバ(Domain Administration Server)上に存在する
インスタンスに対してアプリケーションをデプロイし動作確認を行いました。
参考:SJS Application Server 9.1 EE Betaのインストール
さて今回より、負荷分散・高可用性を実現する為クラスタ環境を構築し、
セッション情報を複数台のマシン上で共有できるようなシステムの構築を
行います。
まず、システムを構築する前に、事前に理解して置かなければならない内容について
説明します。
キーワードは下記の4つです。
●ドメイン
●ドメイン管理サーバ(DAS: Domain Administration Server)
●ノードエージェント(Node Agent)
●インスタンス(Instance)
●クラスタ
絵を使ってもう少し詳しく説明しましょう。
「ユーザの観点」からと「サーバ管理者」の観点からそれぞれ確認します。
まず「サーバ管理者」はSJS Application Serverの管理を
行うために必ず1つ以上のドメイン(Application Serverの構成単位)を
作成します。
そして、ドメインを管理する為にドメイン内に必ず1つの
ドメイン管理サーバ(DAS)を用意します。
インストール時には下記の項目で「ドメイン管理サーバ」として
インストールを行う設定をします。
ドメイン内に所属する全てのマシン(物理的なH/W)上に
それぞれのマシンを管理する為の軽量エージェントプロセス(ノードエージェント)
を導入する必要があります。ノードエージェントはDAS上から管理を行い、
実際にサービスを提供するインスタンス(Server Instance)の
起動・停止・作成・削除等の操作を行う事ができます。
また、Web アプリケーションやEJBモジュール等はインスタンスに
配備し、ユーザはこのインスタンスに対してアクセスする事で
サービスを受ける事ができるようになります。
次にクラスタについて説明します。
アプリケーションに対する負荷を複数台のマシンで分散させる為(Scalability)、
単一システムの障害によるサービス停止を防ぐ高可用性(High Availability)を
実現する為に管理者は複数台のマシンでサービスを提供したいと考えます。
この際、同一のアプリケーションを複数台のマシンに配備する必要が
ありますが、サーバインスタンスを個別に作成し、個別にアプリケーションを
配備するのは非常に管理コストのかかる作業になります。
また、マシンの数が多くなればなる程、管理者による操作ミスが発生して
しまう可能性があります。
これらを防ぐために、SJS Application Serverでは「クラスタ」という
概念が存在します。
クラスタはアプリケーション・リソース(JNDI等)・設定情報をクラスタに
属するインスタンスで共有する事が可能となります。つまり管理者は
クラスタに対する1回の操作を行うだけで全てのインスタンスに対して
同一の操作をしたのと同じ事が実現できます。これにより管理者の
管理コストは軽減し、さらには管理者による単純ミスを防ぐ事ができるように
なります。
今回構築するシステムは下記の図の構成とします。
前段にWeb Serverを配置し、後段にApplication Server を2台のマシンに
それぞれ配置します。
インストールコンポーネント
今回、appserver01(192.168.0.1),appserver2(192.168.0.2)それぞれに対して
SJS Application Server 9.1 EE(with HADB)をインストールします。
それぞれにインストールするコンポーネントを下記の表に示します。
インストールコンポーネント/ホスト名 | appserver01 | appserver02 | |
---|---|---|---|
アプリケーションサーバ | ドメイン管理サーバ | ● | × |
ノードエージェント | ● | ● | |
コマンド行管理ツール | ● | ● | |
ロードバランスプラグイン | × | × | |
JavaDBデータベース | ● | ● | |
OpenESB | ● | ● | |
サンプルアプリケーション | ● | × | |
Sun Java System Message Queue | ● | ● | |
High Availability Session Store (HADB) | ● | ● |
Entry filed under: Application Server/GlassFish.