SJS Web Server7.0サンプルWebアプリのデプロイと高可用性の検証

2006年6月23日 at 12:50 AM

SJS Web Server7.0サンプルWebアプリのデプロイと高可用性の検証
今回はSJS Web Server7.0のクラスタ環境にWebアプリケーションをデプロイ
したいと思います。
1. Webアプリケーションを追加
管理サーバにログインすると、下記の画面が表示されます。
ここで、「Web アプリケーションを追加」ボタンを押下します。


すると下記のウィンドウが別画面として表示されます。


ここで、「参照」ボタンを押下し、デプロイするWeb アプリケーションを指定します。
今回は、WSの付属としてインストールされている下記のサンプルアプリケーションを
デプロイします。
/sun/webserver7/samples/java/webapps/simple/webapps-simple.war
ファイルを選択した後、「了解」ボタンを押下すると下記の画面が表示されます。
ここでは、通常シングルサインオンの設定を行いますが、今回はシングルサインオンは
利用しないため、そのまま「配備」を行います。
画面右上に「▲ 配備保留中」が表示されていますので、
このリンクを押下します。
2007/09/21追記
Web アプリケーションをセッションリプリケーションできるようにする為に、
sun-web.xmlに対して下記のように、persistence-type=”replicated”を追記して下さい。


<?xml version=”1.0″ encoding=”UTF-8″?>
<!–
Copyright 2006 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
–>
<!DOCTYPE sun-web-app PUBLIC “-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.4//EN”
http://www.sun.com/software/sunone/appserver/dtds/sun-web-app_2_4-1.dtd”&gt;
<sun-web-app>
<session-config>
<session-manager persistence-type=”replicated”/>
</session-config>
<jsp-config/>
</sun-web-app>



「▲ 配備保留中」のリンクを押下すると下記の画面が表示されます。
これは、現在、管理サーバのローカルでのみ設定が変更されており、全ての
インスタンス上では有効になっていない状態であることを示してます。
そこで、全てのインスタンス上で有効にするため、「配備」ボタンを押下します。


「配備」ボタンを押下すると、下記の画面が表示され、全てのインスタンスに
対してデプロイが開始されます。


正常に全てのインスタンスに対してデプロイが完了すると下記の画面が表示されます。


以上で、ウェブアプリケーションの配備(デプロイ)の処理は完了です。
如何でしょうか、まるで1台のマシンにデプロイしているのと同様の操作で、
かつ1回の操作だけで、複数台のマシンに対して同一アプリケーションを
デプロイ可能となっています。
このように、非常に管理が楽になっていることが御理解いただけるかと思います。
さて、デプロイが完了しましたので、
正常にWeb アプリケーションが動作しているかを確認します。
ブラウザ経由で下記のURLにアクセスし確認してください。
http://jse8-026:8080/simple/jsp
http://jse8-027:8080/simple/jsp
正常に動作している場合、下記の画面が表示されます。






2. Load Balancer設定
次に、ロードバランサの設定を行います。
ロードバランサとして稼動させるWebサーバを別途用意し下記のコマンドを実行します。
(今回は便宜上、jse8-026 上でロードバランサを設定していますが、別のマシン上で
 設定する場合も下記と同様の設定を行います。)
該当のマシンにTELNET等でログインし、wadmコマンドを実行します。
wadm> create-config –http-port=80 –server-name=lbserver lb
CLI201 コマンド ‘create-config’ は正常に実行されました
wadm> create-reverse-proxy –config=lb –vs=lb –uri-prefix=/ –server=”http://jse8-026:8080,http://jse8-027:8080&#8243;
CLI201 コマンド ‘create-reverse-proxy’ は正常に実行されました
wadm> create-instance –config=lb jse8-026
※ここで指定するホスト名はLoad Balancerを稼動させるホスト名です。

CLI201 コマンド ‘create-instance’ は正常に実行されました
wadm> deploy-config lb
CLI201 コマンド ‘deploy-config’ は正常に実行されました
wadm> start-instance –config=lb
CLI204 サーバーインスタンスは正常に起動しました。

create-reverse-proxy コマンドで、Webサーバが稼動しているホスト名と
Webサーバのインスタンスが稼動しているポート番号を指定します。
(今回の例では、2つのWebサーバインスタンスを作成していますので、
 それぞれ、jse8-026:8080,jse8-027:8080を指定しています。)
以上でLoad Balancerの設定が完了です。
正常に設定が完了しているか下記のURLにアクセスし確認してください。
(LB-HOSTNAME: Load Balancerが稼動するホスト名)
http://LB-HOSTNAME/simple/jsp
正常に設定が完了している場合、下記の画面が表示されます。






3. Session Replication(高可用性)の動作確認
最後に、Session Replicationの動作確認を行います。
Session Replicationの動作確認を行うため、下記のURLにアクセスしてください。
http://LB-HOSTNAME/simple/jsp
アクセスすると下記の画面が表示されます。


今回、Session Replicationの動作確認のために「Carts」(ショッピングカート)の
サンプルアプリケーションを使用します。
「Carts」のリンクを押下すると下記の画面が表示されます。


現在、Load Balancer経由でアクセスしているため、実際には、
どのWebサーバのインスタンス上のアプリケーションを実行しているかわかりません。
  (jse8-026:8080 もしくは jse8-027:8080)
そこで、全インスタンスのアクセスログファイルを確認します。
全マシン(jse8-026,jse8-027)にTELNET等でアクセスし
Webサーバインスタンスのアクセスログをそれぞれ確認します。
  /sun/webserver7/https-cluster1/logs/access
ここで、「add」、「remove」ボタンを押下しないで、ブラウザの
再読み込みボタンを押下してください。
するとラウンドロビンにて交互にアクセスが振り分けられていることが
確認できます。
次に、「add」ボタンを押下してください。
すると特定のWebインスタンスにのみアクセスするようになります。
たとえば、「Carts」のWeb アプリケーションで「Item」を「add」してください。
すると特定のインスタンスへアクセスするようになります。


その際のアクセスログを下記に示します。下記の例ではjse8-027のインスタンスに
対してアクセスされるようになりました。
jse8-027> tail -f /sun/webserver7/https-cluster1/logs/access
10.14.8.26 – – [22/Jun/2006:18:48:20 +0900] “GET /simple/jsp/sessions/carts.jsp?item=JSP+Book&submit=add HTTP/1.1” 200 915
10.14.8.26 – – [22/Jun/2006:18:48:26 +0900] “GET /simple/jsp/sessions/carts.jsp?item=Concert+tickets&submit=add HTTP/1.1” 200 938
10.14.8.26 – – [22/Jun/2006:18:48:30 +0900] “GET /simple/jsp/sessions/carts.jsp?item=Love+life&submit=add HTTP/1.1” 200 955
10.14.8.26 – – [22/Jun/2006:18:48:36 +0900] “GET /simple/jsp/sessions/carts.jsp?item=Concert+tickets&submit=add HTTP/1.1” 200 978

アクセスログを確認した所、現在、jse8-027 にアクセスされていました。
そこで、jse8-027のインスタンスを停止してみたいと思います。
インスタンスを停止した場合の想定動作:
  jse8-027のインスタンスを停止した場合も、画面を再読み込みして
  同一画面が表示される。

それでは、実際に、jse8-027のインスタンスを停止してみます。
管理サーバのトップページより「インスタンスの起動/停止」ボタンを押下してください。


「インスタンスの起動/停止」ボタンを押下すると、下記の画面が表示されます。
ここで、「jse8-027」のノードにチェックを付け、「停止」ボタンを押下します。

「停止」ボタンを押下すると下記の画面が表示され、jse8-027のノードの「状態」が
「停止中」に切り替わり停止状態となります。


この状態で、再度同一のURLにアクセス(再読み込み)してください。
http://LB-HOSTNAME/simple/jsp
すると、下記の画面が表示されます。


如何でしょうか。アクセスされていた方(jse8-027)のインスタンスを停止しても、
同一の画面が表示されたでしょうか。
ここで念のため、本当に切り替わったかを確認するため、全インスタンス
(jse8-026,jse8-027)のアクセスログを確認してください。
正常に切り替わっている場合、他方(jse8-026側)のアクセスログに
ログが出力されるようになることが確認できます。
jse8-026> tail -f /sun/webserver7/https-cluster1/logs/access
10.14.8.26 – – [22/Jun/2006:18:58:11 +0900] “GET /simple/jsp/sessions/carts.jsp?item=JSP+Book&submit=remove HTTP/1.1” 200 1041
10.14.8.26 – – [22/Jun/2006:18:58:15 +0900] “GET /simple/jsp/sessions/carts.jsp?item=JSP+Book&submit=remove HTTP/1.1” 200 1025
10.14.8.26 – – [22/Jun/2006:18:58:28 +0900] “GET /simple/jsp/sessions/carts.jsp?item=NIN+CD&submit=add HTTP/1.1” 200 1039
10.14.8.26 – – [22/Jun/2006:18:58:40 +0900] “GET /simple/jsp/sessions/carts.jsp?item=NIN+CD&submit=add HTTP/1.1” 200 1053

以上でWeb Server 7.0のSession Replicationの動作確認ができましたが、
如何でしょうか?
これで、仮に単一のマシンに何らかの障害が発生しても引き続きサービスを提供できる
事が確認できたかと思います。
次回は、Application Server付属のHADBとWeb ServerのSession Replicationについて
もう少し詳しく説明したいと思います。

広告

Entry filed under: SJS Web Server 7.

SJS Web Server7.0クラスタ環境の構築 Creator Pack For NetBeans


Java Champion & Evangelist

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2006年6月
« 2月   7月 »
 1234
567891011
12131415161718
19202122232425
2627282930  

カテゴリー

Twitter

エラー: Twitter からの反応がありません。数分待ってページを再読み込みしてください。

clustermap

ブログ統計情報

  • 965,329 hits

Feeds


%d人のブロガーが「いいね」をつけました。