8.11 システムをスケールアウトする
業務処理量の増加が判明した場合や、将来予測される業務処理量に備える場合などに、増設したマシン(新設サーバ)にApplication Serverを構築して、システムをスケールアウトします。システムをスケールアウトするには、新設サーバにApplication Serverをインストールし、新設サーバのローカルホストから既存サーバのリモートホストへ接続するための設定をしたあと、Application Serverのセットアップを実施します。
前提条件
-
クラスター構成で、既存のサーバインスタンスがクラスターに含まれている
-
既存サーバでドメイン管理サーバが起動している
-
既存サーバにApplication Serverがセットアップされている
-
新設サーバが稼働している
想定ユーザー
- システム構築者
操作手順
-
新設サーバにApplication Serverをインストールします。
-
リモートホストで、ドメイン管理サーバ(ローカルホスト)のホスト名を名前解決できるようにhostsファイルを編集します。
-
ローカルホストで、パスワードファイルを作成します。
AS_ADMIN_SSHPASSWORD=リモートホストのパスワード
-
ローカルホストで、asadminユーティリティーコマンドのsetup-sshサブコマンドを実行して、暗号キー(SSLキー)を作成します。
asadmin --passwordfile パスワードファイルのパス setup-ssh --sshuser リモートホストのSSHユーザー名 リモートホスト名
コマンドの実行結果を次に示します。
Command setup-ssh executed successfully.
-
ローカルホストで、asadminユーティリティーコマンドのcreate-password-aliasサブコマンドを実行して、パスワードに対するエイリアスを設定します。
asadmin create-password-alias パスワードエイリアス名
パスワードが求められた場合は、リモートホストのパスワードを入力してください。
コマンドの実行結果を次に示します。
Command create-password-alias executed successfully.
-
ローカルホストで、手順3で作成したパスワードファイルを編集します。
AS_ADMIN_SSHPASSWORD=${ALIAS=パスワードエイリアス名}
-
ドメイン管理サーバを再起動します。
asadmin restart-domain
コマンドの実行結果を次に示します。
Command restart-domain executed successfully.
-
新設サーバにApplication Serverをセットアップするため、asadminユーティリティーコマンドのcreate-node-sshサブコマンドを実行して、リモートホストに対するノードを追加します。
asadmin --user ドメイン管理サーバのユーザー名 --passwordfile パスワードファイルのパス create-node-ssh --nodehost リモートホストのホスト名 --sshuser リモートホストのアカウント名 --sshkeyfile ~/.ssh/id_rsa --installdir Application Serverのインストールディレクトリー/javaeeの絶対パス リモートホストのノード名
リモートホストのノード名には、リモートホストに構築するノード名(ノードを識別するための任意の名称)を指定します。
コマンドの実行結果を次に示します。
Command create-node-ssh executed successfully.
-
新設サーバにApplication Serverをセットアップするため、asadminユーティリティーコマンドのcreate-prfサブコマンドを実行して、パフォーマンストレーサーを構築します。
asadmin create-prf --node リモートホストのノード名 パフォーマンストレーサー名
コマンドの実行結果を次に示します。
Command create-prf executed successfully.
-
新設サーバにApplication Serverをセットアップするため、asadminユーティリティーコマンドのcreate-instanceサブコマンドを実行して、Java EEサーバ(サーバインスタンス)を構築します。
asadmin create-instance --node リモートホストのノード名 --prf パフォーマンストレーサー名 --cluster クラスター名 サーバインスタンス名
クラスター名には、構築済みのクラスター名を指定します。
コマンドの実行結果を次に示します。
Command create-instance executed successfully.
-
ハードウェアロードバランサーを使用している場合は、asadminユーティリティーコマンドのcreate-webserverサブコマンドを実行して、新設サーバにWebサーバを構築します。
ソフトウェアロードバランサーを使用している場合は、
手順15の操作に進んでください。
asadmin create-webserver --node リモートホストのノード名 Webサーバ名
コマンドの実行結果を次に示します。
Command create-webserver executed successfully.
-
ハードウェアロードバランサーを使用している場合は、asadminユーティリティーコマンドのcreate-relationサブコマンドを実行して、新設サーバにサーバ間関連を設定します。
asadmin create-relation --relationtype redirect --from Webサーバ名 --to サーバインスタンス名 --properties サーバ間関連のプロパティー名=サーバ間関連のプロパティーの値 サーバ間関連の関連名
リダイレクト関連の関連づけを設定する場合、静的コンテンツをWebサーバで処理し、静的コンテンツ以外のリクエストをJava EEサーバで処理するために、--propertiesオプションにpath、およびnetwork-listenerを指定します。
(例)
path=/apserver/:network-listener=http-listener-1
pathには、スラッシュ(/)から始まるURLのパスを指定します。スラッシュだけの指定(path=/)はしないでください。この例では、http://xxxxxxxxxxx/index.htmlのようにURLのパスの先頭にapserverを含まないリクエストは、Webサーバの静的コンテンツにアクセスされます。また、http://xxxxxxxxxxx/apserver/sample/index.jspのようにURLのパスの先頭にapserverを含むリクエストは、http://yyyyyyyyyyy/sample/index.jspというURLでJava EEサーバにリダイレクトされます。
network-listenerには、リダイレクト先のJava EEサーバのHTTPリスナー、またはHTTPSリスナーを示すネットワークリスナー名を指定します。Java EEサーバには、デフォルトでHTTPリスナーにhttp-listener-1、HTTPSリスナーにhttp-listener-2というネットワークリスナーが定義されています。
コマンドの実行結果を次に示します。
Command create-relation executed successfully.
-
ハードウェアロードバランサーを使用している場合で、かつ、性能を考慮して静的コンテンツをWebサーバに配置する場合は、Webサーバのドキュメントルートディレクトリーに静的コンテンツを格納します。
Webサーバのドキュメントルートディレクトリーは、
Application Serverインストールディレクトリー/javaee/glassfish/nodes/ノード名/Webサーバ名/root/htdocsです。
-
ハードウェアロードバランサーを使用している場合は、ハードウェアロードバランサーに対してリクエストの振り分けを設定します。
リクエストを振り分ける設定については、使用しているハードウェアロードバランサーのマニュアルを参照してください。
-
ソフトウェアロードバランサーを使用している場合は、asadminユーティリティーコマンドのcreate-relationサブコマンドを実行して、新設サーバにサーバ間関連を設定します。
asadmin create-relation --relationtype redirect --from Webサーバ名 --to クラスター名 --properties サーバ間関連のプロパティー名=サーバ間関連のプロパティーの値 サーバ間関連の関連名
リダイレクト関連の関連づけを設定する場合、静的コンテンツをWebサーバで処理し、静的コンテンツ以外のリクエストをJava EEサーバで処理するために、--propertiesオプションにpath、およびnetwork-listenerを指定します。
(例)
path=/apserver/:network-listener=http-listener-1
pathには、スラッシュ(/)から始まるURLのパスを指定します。スラッシュだけの指定(path=/)はしないでください。この例では、http://xxxxxxxxxxx/index.htmlのようにURLのパスの先頭にapserverを含まないリクエストは、Webサーバの静的コンテンツにアクセスされます。また、http://xxxxxxxxxxx/apserver/sample/index.jspのようにURLのパスの先頭にapserverを含むリクエストは、http://yyyyyyyyyyy/sample/index.jspというURLでJava EEサーバにリダイレクトされます。
network-listenerには、リダイレクト先のJava EEサーバのHTTPリスナー、またはHTTPSリスナーを示すネットワークリスナー名を指定します。Java EEサーバには、デフォルトでHTTPリスナーにhttp-listener-1、HTTPSリスナーにhttp-listener-2というネットワークリスナーが定義されています。
コマンドの実行結果を次に示します。
Command create-relation executed successfully.