Java on Azure ハンズオン セミナー
Payara Scale を Azure で構築
Version: 1.0
Last updated: 2016/6
2	
	
もくじ
概要 ........................................................................................................................................... 3
演習内容 .................................................................................................................................... 4
ハンズオン ラボの演習環境について............................................................................................... 5
演習 1 : 西日本リージョンの環境構築............................................................................................. 6
Ø タスク 1 : Linux 仮想マシンの構築 : Payara ドメイン管理サーバ用 ........................................ 8
Ø タスク 2 : Linux 仮想マシンの構築: Payara クラスタ Node1 .................................................30
Ø タスク 3 : Linux 仮想マシンの構築:Payara クラスタ Node2....................................................58
Ø タスク 4 : JDK 8 (OpenJDK) と必須パッケージのインストール ................................................79
Ø タスク 5 : Payara ドメイン管理サーバのインストールと構築 ....................................................81
Ø タスク 6 : 仮想ネットワーク設定の確認 ..............................................................................92
Ø タスク 7 : Payara のリモート・ノード1の構築 ........................................................................96
Ø タスク 8 : Payara のリモート・ノード 2 の構築.......................................................................99
Ø タスク 9 : Payara クラスタの作成とインスタンス作成............................................................ 101
Ø タスク 10 : 高可用性設定 (Hazelcast によるセッション・レプリケーション設定) ....................... 108
Ø タスク 11 : ロードバランサの設定.................................................................................... 111
Ø タスク 12 : 高可用性アプリケーションの作成と動作確認..................................................... 143
演習 2 : 東日本リージョンの環境構築.......................................................................................... 174
演習 3 : Microsoft Azure TrafficManager の構成 ........................................................................... 175
Ø タスク 1 : Traffic Manager の構築................................................................................... 175
演習 4 : Payara Scale (Hazelcast Enterprise) の設定 (ライセンス必要) .............................................. 176
リソース .................................................................................................................................... 178
3	
	
概要
Microsoft Azure は、マイクロソフトが提供するクラウドプラットフォームで、マイクロソフトが管理す
るデータセンター上で Web サイト ホスティング、クラウド アプリケーション ホスティング (PaaS)、
ならびに仮想マシン ホスティング (IaaS) 環境を提供します。
本演習では、Azure 上でミッション・クリティカルな、エンタープライズ Java 環境を Payara という
アプリケーション・サーバを利用し構築するための手順を学習します。はじめに、日本の単一リー
ジョンでクラスタ環境を構築し、最終的にはリージョンを跨いだクラスタの冗長構成を構築します。
図 1:Payara Scale 2 リージョン・クラスタの構成図
本演習を実施することで、Microsoft Azure 上の IaaS に関する基本的な操作方法について理
解することができます。
4	
	
演習内容
このハンズオン ラボでは以下のことを学習します。
Ø Azure 上に新しい仮想マシン (Ubuntu) を作成する
Ø Ubuntu に JDK と Payara サーバをインストールする
Ø Payara のインストールとドメインの設定を行う
Ø 単一リージョンで Payara クラスタを構成する
Ø ロードバランサを構成しロードバランサ経由で Payara インスタンスにアクセスする
Ø TrafficeManager を利用し異なるリージョンにリクエストを振り分ける (OSS 版の範囲で利用
可能)
Ø Payara Scale を利用しリージョンを跨いだクラスタの冗長構成を構築する (Payara
Enterprise 版+AddOn 機能:要ライセンス)
このハンズオン ラボの所要時間:約 30 分~60 分
5	
	
ハンズオン ラボの演習環境について
このハンズオンラボは、ネットワークに接続可能な PC ブラウザ環境 (Windows PC または Mac)
を使って演習を進めます。演習では HTML 5 対応の Web ブラウザが必要です。Chrome,
Firefox, IE など最新の Web ブラウザを利用できるようにしてください。
また、Azure 上の Linux 仮想マシンに SSH 接続するため、PC 環境に SSH クライアントを事前に
用意してください。
ü Windows 環境では Putty: http://www.putty.org/ などの SSH クライアントのインストールを
お願いいたします。
ü Mac OS の場合はターミナルを使うことができます。
6	
	
演習 1 : 西日本リージョンの環境構築
本演習では、はじめに西日本リージョンで、ロードバランサ (LB)を使用した、Payara クラスタを
構成します。この環境を構築するために、3台の Linux 仮想マシンを構築・起動します。1台は
Payara のドメイン管理サーバとして動作し、残りの2台で Payara のクラスタのノードを構成しま
す。各ノードで、インスタンスをそれぞれ1つ作成します。Payara クラスタを構成したのち、LB の
設定を行いアプリケーションの動作確認を行います。
図 2:単一リージョン Payara クラスタの構成図
1点ご注意いただきたいのは、Payara の管理サーバとノードで、Ubuntu の仮想マシンを構成す
る際の設定方法が異なりますので、構成時には十分ご注意ください。例えば、管理サーバの仮
想マシンには 4848 番ポートでしかアクセスできないように設定します。またノードには 28080 番
ポートでしかアクセスできないように設定します。さらに、ノードを構成する仮想マシン2台は
Azure の「可用性セット」として作成します。
7	
	
今回 Payara サーバは、Ubuntu Server 16.04 上で動作させることにします。Azure で Ubuntu 環
境を構築するための設定項目を下記に示します。仮想マシンの名前やパスワードは、ご自身の
環境にあわせて適宜設定・変更してください。
表 1:Payara クラスタ Ubuntu 仮想マシン設定一覧
管理サーバ ノード1 ノード2
OS Ubuntu Server 16.04
LTS
Ubuntu Server 16.04
LTS
Ubuntu Server 16.04
LTS
デプロイモデル リソースマネージャ リソースマネージャ リソースマネージャ
名前 YT-Payara-West-
Admin
YT-Payara-West-
Node1
YT-Payara-West-
Node2
ユーザ名 payara payara payara
認証の種類 パスワード パスワード パスワード
パスワード (12 文字以
上)
Payara123456 Payara123456 Payara123456
サブスクリプション 登録サブスクリプション 登録サブスクリプション 登録サブスクリプション
リソース グループ Payara-Cluster-RS Payara-Cluster-RS Payara-Cluster-RS
場所 西日本 西日本 西日本
サイズの選択 DS1_V2 Standard (任
意)
DS1_V2 Standard (任
意)
DS1_V2 Standard (任
意)
ストレージ アカウント デフォルト値 (設定不
要)
デフォルト値 (設定不
要)
デフォルト値 (設定不
要)
Virtual Network Payara-West Payara-West Payara-West
サブネット default (10.1.0.0/24) default (10.1.0.0/24) default (10.1.0.0/24)
パブリック IP アドレス (新規)デフォルト値 (新規)デフォルト値 (新規)デフォルト値
ネットワーク セキュリテ
ィ グループ
Payara-West-Admin Payara-West-Node Payara-West-Node
拡張機能 拡張機能なし 拡張機能なし 拡張機能なし
診断 有効 有効 有効
診断ストレージアカウン
ト
デフォルト値 デフォルト値 デフォルト値
可用性セット なし (新規) Payara-West-
Node
(新規) Payara-West-
Node
(※ 仮想マシンごとに異なる設定が必要な箇所を赤文字で記述)
8	
	
タスク	1	: Linux 仮想マシンの構築 : Payara ドメイン管理サーバ用
はじめに、Payara のドメイン管理サーバ1
環境を構築します。今回、Payara のドメイン管理サーバ
は Ubuntu 16.04 上で動作させます。そこで Azure 上で Ubuntu16.04 を稼働させるために、仮
想マシンを構築してください。Microsoft Azure のポータル・サーバにアクセスしてください。
l Microsfot Azure のポータル画面
https://portal.azure.com
ポータル画面にログインすると、下記のようなダッシュボードが表示されます。
1
	 この時点では、「ドメイン管理サーバ」という名前の意味について理解していなくても構いませ
ん。管理するための専用サーバを構築する必要があるとお考えください。	
図	 3:Microsoft	Azure	 のポータル・ダッシュボード
9	
	
Ubuntu の仮想マシンを構築するために、ポータル画面のメニューから「+新規」を押下してくだ
さい。すると検索フィールドが表示されます。ここで「Ubuntu」と入力しエンターを押下してくださ
い。
図	 4:新規サービスの検索画面
10	
	
検索を行うと、下記のような検索結果が表示されます。ここで「Ubuntu Server 16.04 LTS」を選択
してください。
図	 5:ポータルから Ubuntu	Server の検索結果
11	
	
選択すると下記の画面が表示されます。ここで、「デプロイ モデルの選択」に「リソースマネージ
ャ」が選択されていることを確認し「作成」ボタンを押下します。
図	 6:Ubuntu	Server	16.04	LTS	 の作成
12	
	
Ubuntu 仮想マシンを構築するための全パラメータを下記に記載します。ご自身の環境に応じて
適宜修正してください。
表 2:Ubuntu 仮想マシン環境構築用パラメータ(Payara 管理サーバ用)
管理サーバ用設定例 各自の実際の設定値の記載用
OS Ubuntu Server 16.04 LTS
デプロイモデル リソースマネージャ
名前 YT-Payara-West-Admin
ユーザ名 payara
認証の種類 パスワード
パスワード
(12 文字以上)
Payara123456
サブスクリプション 登録サブスクリプション
リソース グループ Payara-Cluster-RS
場所 西日本
サイズの選択 DS1_V2 Standard (任意)
ストレージ
アカウント
デフォルト値 (設定不要)
Virtual Network Payara-West
サブネット default (10.1.0.0/24)
パブリック IP
アドレス
(新規)デフォルト値
ネットワーク セキュリテ
ィ グループ
Payara-West-Admin
拡張機能 拡張機能なし
診断 有効
診断ストレージアカウ
ント
デフォルト値
可用性セット なし
13	
	
Ubuntu 仮想マシンの環境構築用の設定パラメータを各自で決定したのち、実際にパラメータを
入力してください。「仮想マシンの名前」、「ログイン用のユーザ名」、「パスワード」、「リソースグル
ープ名」、「場所」をそれぞれ入力し「OK」ボタンを押下してください。
図 7:Ubuntu 仮想マシンの基本設定
14	
	
基本設定が完了すると、仮想マシンの「サイズの選択」画面が表示されます。ここで、各自の環境
に応じて適した仮想マシンを選択してください。今回はハンズオン・ラボのため「DS1_V2
Standard」を選択し「選択」ボタンを押下してください。
図	 8:仮想マシン・サイズの選択
15	
	
仮想マシンのサイズを選択した後、「ストレージ」、「ネットワーク」等の追加設定を行います。仮想
ネットワーク名はデフォルトで振られた名前ではなく、独自に名前をつけます。そこで、「ネットワ
ーク」から「Virtual Network」を選択し、「+新規作成」を押下します。ここで「名前」に「Payara-
West」を入力し「OK」ボタンを押下してください。
図	 9:仮想サーバ仮想ネットワーク設定
16	
	
次に、「ネットワーク セキュリティ グループ」の設定を行います。この設定は、外部や内部ネット
ワークのアクセス制限を実施する項目で、ポート番号レベルでアクセス制限をかけることができま
す。同一のセキュリティ・グループに対し、複数の仮想サーバを組み込むことができます。今回、
Payara のドメイン管理サーバと Payara のノードでアクセス制限の設定を変えるように設定しま
す。Payara のドメイン管理サーバ・インスタンスはデフォルトで、4848 番ポートで待ち受けされて
います。それ以外にも HTTP 用に 8080 番ポート、HTTPS 用に 8181 番ポートでアクセスできま
すが、今回、管理サーバではアプリケーションは動作させないため、4848 番ポートだけアクセス
できるように設定します。「受信規則の追加」リンクを押下してください。
図	 10:ネットワーク	 セキュリティ	 グループ設定の追加
17	
	
リンクを押下すると下記の画面が表示されます。ここで「受信セキュリティ規則の追加」として「名
前」、「優先度」、「ソース」、「プロトコル」、「発信元ポート範囲」、「宛先」、「宛先ポート範囲」、「ア
クション」をそれぞれ設定し、「OK」ボタンを押下してください
図 11:受信セキュリティ規則の追加設定
18	
	
「受信セキュリティ規則の追加」を追加すると下記の画面が表示されますので、「OK」ボタンを押
下してください。
図	 12:ネットワーク	 セキュリティ	 グループの設定
19	
	
「ネットワーク セキュリティ グループ」の設定を終えたのち、「OK」ボタンを押下してください。
図 13:追加設定の完了
20	
	
「設定」を終えたのち、下記の画面が表示されます。設定内容に問題がなければ「検証に成功し
ました」と表示されますので、「OK」ボタンを押下してください。「OK」ボタンを押下すると仮想マシ
ンの作成処理が始まります。
図	 14:概要の確認画面
21	
	
「OK」ボタンを押下すると下記の画面が表示されます。完了までしばらくお待ちください。
図	 15:仮想マシンの作成中
22	
	
仮想マシンが正しく作成されると下記のように「デプロイメントが成功しました」の通知ウィンドウが
表示されます。
図	 16:デプロイメントの成功
23	
	
Azure へデプロイが正しく完了したのち、Azure ポータルのメニュー(左ペイン)から「リソースグル
ープ」を押下してください。押下すると作成すみのリソース グループ一覧が表示されます。ここで
今回作成した Payara クラスタのリソースグループ「Payara-Cluster-RS」を選択してください。
図	 17:Payara	 用のリソース	 グループを選択
24	
	
「Payara-Cluster-RS」を選択するとリソース グループ中に存在するリソースの一覧が表示されま
す。ここで、仮想マシン「YT-Payara-West-Admin」を選択してください。
図	 18:リソース	 グループの一覧
25	
	
選択すると下記の画面が表示されます。ここで、本仮想マシンに対して IP アドレスではなく、
DNS で名前解決ができるように DNS 名の設定を行います。「パブリック IP アドレス/DNS 名ラベ
ル」のリンクを押下してください。
図	 19:仮想マシンの設定
26	
	
リンクを押下すると下記の画面が表示されます。現在 DNS 名が設定されていないため「構成」の
リンクを押下し DNS 名を設定します。右ペインより「構成」のリンクを押下してください。
図	 20:パブリック IP	 設定
27	
	
「構成」を選択すると下記の画面が表示されます。ここで「DNS 名ラベル(オプション)」に DNS 名
を設定し「保存」ボタンを押下してください。
図 21:パブリック IP アドレスの構成(DNS 名の設定)
28	
	
ボタンを押下すると下記の画面が表示します。しばらくお待ちください。
以上で、Payara のドメイン管理サーバ用の Ubuntu の構成は完了です。DNS 名を設定したの
で、DNS 名を利用し SSH でログインをしてみましょう。
> ssh -l payara yt-payara-west-admin.japanwest.cloudapp.azure.com
The authenticity of host 'yt-payara-west-admin.japanwest.cloudapp.azure.com (40.74.81.14)'
can't be established.
RSA key fingerprint is a1:f4:6a:16:73:06:5e:be:2a:0e:5a:27:9d:34:58:af.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'yt-payara-west-
admin.japanwest.cloudapp.azure.com,40.74.81.14' (RSA) to the list of known hosts.
payara@yt-payara-west-admin.japanwest.cloudapp.azure.com's password:
[Payara123456]
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64)
* Documentation: https://help.ubuntu.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
図	 22:パブリック	 IP	 アドレスの保存
29	
	
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
payara@YT-Payara-West-Admin:~$
正常にログインが完了するとコマンドプロンプトが表示されます。
30	
	
タスク	2	: Linux 仮想マシンの構築: Payara クラスタ Node1
「タスク 1 :」で、Payara のドメイン管理サーバ用の Linux 仮想マシンを構築したので、次にサー
ビスを提供するための Linux 仮想マシン(Payara のノード)を構築します。Azure のポータルより「リ
ソース グループ」のリンクを押下してください。すると登録済みの「リソース グループ」の一覧が
表示されます。ここで、作成した「Payara-Cluster-RS」を選択してください。
図	 23:リソース	 グループの一覧表示
31	
	
「Payara-Cluster-RS」のリソースを選択すると、「タスク 1 :」で作成した仮想マシンや他のリソース
の一覧が表示されます。ここで、画面上部にある「追加」ボタンを押下してください。
図	 24:Payara-Cluster-RS	 のリソース一覧
32	
	
「新規」ボタンを押下すると下記の画面が表示されます。
図	 25:新規仮想マシンの作成
33	
	
ここで、検索フィールドに「Ubuntu」と入力しエンター・キーを押下してください。すると下記の検
索結果が表示されますので「Ubuntu Server 16.04 LTS」を選択しリンクを押下してください。
図	 26:Ubuntu	 イメージの検索と選択
34	
	
「Ubuntu Server 16.04 LTS」を選択すると下記の画面が表示されます。「デプロイモデルの選択」
で「リソースマネージャ」が選択されていることを確認し「作成」ボタンを押下してください。
図 27:Ubuntu 仮想マシン・イメージの作成
35	
	
Payara ノード用の Ubuntu 仮想マシンを構築するための全パラメータを下記に記載します。ご自
身の環境に応じて適宜修正してください。
表 3:Ubuntu 仮想マシン環境構築用パラメータ(Payara ノード 1 用)
ノード1 各自の実際の設定値の記載用
OS Ubuntu Server 16.04 LTS
デプロイモデル リソースマネージャ
名前 YT-Payara-West-Node1
ユーザ名 payara
認証の種類 パスワード
パスワード
(12 文字以上)
Payara123456
サブスクリプション 登録サブスクリプション
リソース グループ Payara-Cluster-RS
場所 西日本
サイズの選択 DS1_V2 Standard (任意)
ストレージ アカウント デフォルト値 (設定不要)
Virtual Network Payara-West
サブネット default (10.1.0.0/24)
パブリック IP
アドレス
(新規)デフォルト値
ネットワーク セキュリテ
ィ グループ
Payara-West-Node
拡張機能 拡張機能なし
診断 有効
診断ストレージ
アカウント
デフォルト値
可用性セット (新規) Payara-West-Node
36	
	
Ubuntu 仮想マシンの環境構築用の設定パラメータを各自で決定したのち、実際にパラメータを
入力してください。「仮想マシンの名前」、「ログイン用のユーザ名」、「パスワード」、「リソースグル
ープ名」、「場所」をそれぞれ入力し「OK」ボタンを押下してください。
図 28:Ubuntu 仮想マシンの基本設定
37	
	
基本設定が完了すると、仮想マシンの「サイズの選択」画面が表示されます。ここで、各自の環境
に応じて適した仮想マシンを選択してください。今回はハンズオン ラボのため「DS1_V2
Standard」を選択し「選択」ボタンを押下してください。
図	 29:仮想マシン・サイズの選択
38	
	
仮想マシンのサイズを選択した後、「ストレージ」、「ネットワーク」等の追加設定を行います。
Payara 用の仮想ネットワークは、「タスク 1 :」で既に作成、設定しましたので前回作成した、
「Payara-West」の仮想ネットワークが選択されていることを確認してください。次に、「ネットワーク
セキュリティ グループ」の設定を行います、リンクを押下してください。
図 30:オプション機能の構成
39	
	
リンクを押下すると下記の画面が表示されます。ここでは、「タスク 1 :」で作成した Payara のドメ
イン管理サーバとは異なる、アクセス制限をかけます。そこで新規に「ネットワーク セキュリティ
グループ」として「Payara-West-Node」を作成してください。詳細の受信規則は、後ほど設定しま
す。そこで、「名前」を入力後、そのまま「OK」ボタンを押下してください。
図	 31:ネットワーク	 セキュリティ	 グループの設定
40	
	
「ネットワーク セキュリティ グループ」の作成が完了すると下記の画面が表示されます。次に、可
用性の設定を行います。
Azure では、障害やメンテナンスで 2 台が同時に停止しないように、あらかじめ管理対象とする仮
想マシンのグループを指定しておくことができます。これを「可用性セット」と呼びます。この機能に
より、可用性セットに含まれる仮想マシンの内1台は、障害・メンテ時にもサービスを提供 (99.95%の
SLA) しつづけることができます。
「可用性セット」のリンクを押下してください。
図 32:可用性セットの設定
41	
	
リンクを押下すると下記の画面が表示されます。ここで「新規作成」ボタンを押下してください。
図 33:可用性セットの変更
42	
	
「可用性セットの設定」において、更新ドメインは、更新するグループの単位を表します。たとえば仮
想マシンを 6 個作成しており、更新ドメインが5に設定されている場合、6 個目は、5 つの内のいず
れかのグループに所属します。障害ドメインは、電源とネットワーク スイッチを共有する仮想マシン
のグループを設定します。
詳細:仮想マシンの可用性管理
https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-windows-manage-
availability/
「新規作成」ボタンを押下すると下記の画面が表示されます。ここで「可用性セット」に名前をつ
け、「OK」ボタンを押下してください。
図 34:可用性セットの変更
43	
	
ボタンを押下すると下記の画面が表示されます。「オプション機能の構成」が完了したのち「OK」
ボタンを押下してください。
図 35:オプション機能の構成
44	
	
「OK」ボタンを押下すると下記の画面が表示され検証を行います。検証が成功したのち、「OK」
ボタンを押下してください。
図	 36:概要の確認
45	
	
「OK」ボタンを押下すると下記の画面が表示されます。仮想マシンの作成が完了するまでしばら
くお待ちください。
図	 37:仮想マシンの作成中
46	
	
仮想マシンが正しく作成され、起動すると下記の画面が表示されます。
図	 38:仮想マシンの起動
47	
	
仮想マシンの作成後、「ネットワーク セキュリティ グループ」の設定を行います。設定を変更する
ために、「リソース グループ」のリンクを押下してください。
図	 39:リソース	 グループ一覧の表示
48	
	
リンクを押下すると、リソースの一覧が表示されます。ここで、「ネットワーク セキュリティ グルー
プ」の「Payara-West-Node」を選択してください。
図	 40:Payara-Cluster-RS のリソース一覧
49	
	
「ネットワーク セキュリティ グループ」の「Payara-West-Node」を選択すると下記の画面が表示
されます。ここで「受信セキュリティ規則」を選択してください。
図	 41:ネットワーク セキュリティ グループの設定
50	
	
「受信セキュリティ規則」を選択すると下記の画面が表示されます。ここで「+追加」ボタンを押下
してください。
図	 42:受信セキュリティ規則の設定
51	
	
「受信セキュリティ規則の追加」を押下すると下記の画面が表示されます。ここで、セキュリティ規
則に「名前」を付け、「優先度」、「宛先ポート範囲」を入力して最後に「OK」ボタンを押下してくだ
さい。
ここで、「宛先ポート範囲」は「28080」を指定してください。Payara のドメイン管理サーバでクラス
タを構成し、ノード上にインスタンスを作成すると、デフォルトで「28080 番ポート」でアクセスが可
能なインスタンスが生成されます。
図 43:受信セキュリティ規則の追加
52	
	
「OK」ボタンを押下すると下記の画面が表示されます。ただしく設定が追加されていることを確認
してください。
図	 44:受信セキュリティ規則の追加確認
53	
	
「受信セキュティ規則」の設定が終わったのち、作成した仮想マシンに DNS 名でアクセスができ
るように、ドメイン名の設定を行います。「リソースグループ」から「Payara-Cluster-RS」を選択し、
仮想マシン「YT-Payara-West-Node1」を選択してください。リソース一覧の中、仮想マシンを示
すアイコンは下記になります。
図	 45:リソースグループのリソース一覧
54	
	
仮想マシン「YT-Payara-West-Node1」を選択すると下記の画面が表示されます。ここで「パブリ
ック IP アドレス/DNS 名ラベル」のリンクを押下してください。
図	 46:仮想マシンの設定
55	
	
リンクを押下すると下記の画面が表示されます。ここで「構成」のリンクを押下してください。
図	 47:パブリック IP アドレスの設定
56	
	
「構成」のリンクを押下すると下記の画面が表示されます。「DNS 名ラベル(オプション)」に DNS
で名前解決するホスト名を記入し、「保存」ボタンを押下してください。
図 48:DNS で名前解決するホスト名の構成
以上で、Payara の1台目の仮想マシンの設定は完了です。設定した DNS のホスト名を利用し、
SSH でログインをしてください。
> ssh -l payara yt-payara-west-node1.japanwest.cloudapp.azure.com
The authenticity of host 'yt-payara-west-node1.japanwest.cloudapp.azure.com (40.74.90.216)'
can't be established.
RSA key fingerprint is a7:cd:65:ed:13:41:05:15:c7:c0:58:04:df:15:f1:30.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'yt-payara-west-
node1.japanwest.cloudapp.azure.com,40.74.90.216' (RSA) to the list of known hosts.
payara@yt-payara-west-node1.japanwest.cloudapp.azure.com's password:
57	
	
[Payara123456]
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64)
* Documentation: https://help.ubuntu.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
payara@YT-Payara-West-Node1:~$
ログインし、「payara@YT-Payara-West-Node1:~$」のプロンプトが表示されていれば正常に設定
が完了しています。
58	
	
タスク	3	: Linux 仮想マシンの構築:Payara クラスタ Node2
「タスク 2 :」で Payara クラスタの Node1 の環境を構築しました。ここでは、「タスク 2 :」と同様の
手順で、もう一つの仮想マシンを構築します。「リソース グループ」の一覧から「Payara-Cluster-
RS」を選択してください。
図	 49:リソース	 グループ一覧
59	
	
「Payara-Cluster-RS」のリソースを選択すると、作成済みの仮想マシンや他のリソース一覧が表
示されます。ここで、画面上部にある「追加」ボタンを押下してください。
図 50:Payara-Cluster-RS のリソース一覧
60	
	
「新規」ボタンを押下すると下記の画面が表示されます。
図	 51:新規仮想マシンの作成
61	
	
ここで、検索フィールドに「Ubuntu」と入力しエンター・キーを押下してください。すると下記の検
索結果が表示されますので「Ubuntu Server 16.04 LTS」を選択しリンクを押下してください。
図	 52:Ubuntu	 イメージの検索と選択
62	
	
「Ubuntu Server 16.04 LTS」を選択すると下記の画面が表示されます。「デプロイモデルの選択」
で「リソースマネージャ」が選択されていることを確認し「作成」ボタンを押下してください。
図 53:Ubuntu 仮想マシン・イメージの作成
63	
	
Payara ノード用の Ubuntu 仮想マシンを構築するための全パラメータを下記に記載します。ご自
身の環境に応じて適宜修正してください。
表 4:Ubuntu 仮想マシン環境構築用パラメータ(Payara ノード 2 用)
ノード2 各自の実際の設定値の
OS Ubuntu Server 16.04 LTS
デプロイモデル リソースマネージャ
名前 YT-Payara-West-Node2
ユーザ名 payara
認証の種類 パスワード
パスワード (12 文字以
上)
Payara123456
サブスクリプション 登録サブスクリプション
リソース グループ Payara-Cluster-RS
場所 西日本
サイズの選択 DS1_V2 Standard (任意)
ストレージ アカウント デフォルト値 (設定不要)
Virtual Network Payara-West
サブネット default (10.1.0.0/24)
パブリック IP アドレス (新規)デフォルト値
ネットワーク セキュリテ
ィ グループ
Payara-West-Node
拡張機能 拡張機能なし
診断 有効
診断ストレージアカウ
ント
デフォルト値
可用性セット (新規) Payara-West-Node
64	
	
Ubuntu 仮想マシンの環境構築用の設定パラメータを各自で決定したのち、実際にパラメータを
入力してください。「仮想マシンの名前」、「ログイン用のユーザ名」、「パスワード」、「リソースグル
ープ名」、「場所」をそれぞれ入力し「OK」ボタンを押下してください。
図 54:Ubuntu 仮想マシンの基本設定
65	
	
基本設定が完了すると、仮想マシンの「サイズの選択」画面が表示されます。ここで、各自の環境
に応じて適した仮想マシンを選択してください。今回はハンズオン ラボのため「DS1_V2
Standard」を選択し「選択」ボタンを押下してください。
図	 55:仮想マシン・サイズの選択
66	
	
仮想マシンのサイズを選択した後、「ストレージ」、「ネットワーク」等の追加設定を行います。
Payara 用の仮想ネットワークは、「タスク 1 :」で既に作成、設定しましたので前回作成した、
「Payara-West」の仮想ネットワークが選択されていることを確認してください。次に、「ネットワーク
セキュリティ グループ」の設定を行います、リンクを押下してください。
図 56:オプション機能の構成
67	
	
リンクを押下すると下記の画面が表示されます。ここでは、新しい設定は追加せずに、「タスク
2 :」で作成した「ネットワーク セキュリティ グループ」として「Payara-West-Node」を選択してくだ
さい。
図 57:ネットワーク セキュリティ グループの選択
68	
	
「Payara-West-Node」を選択すると下記の画面が表示されます。次に「タスク 2 :」と同様に「可用
性セット」を設定します。「可用性セット」のリンクを押下してください。
図 58:可用性セットの設定
69	
	
リンクを押下すると下記の画面が表示されます。ここで「タスク 2 :」で作成済みの「可用性セット」
として「Payara-West-Node」を選択してください。
図 59:可用性セットの選択
70	
	
選択すると下記の画面が表示されます。以上で「オプション機能の構成」が完了したので、「OK」
ボタンを押下してください。
図 60:オプション機能の構成
71	
	
「OK」ボタンを押下すると下記の画面が表示され検証を行います。検証が成功したのち、「OK」
ボタンを押下してください。
図	 61:仮想マシンの作成の概要検証
72	
	
「OK」ボタンを押下すると下記の画面が表示され、仮想マシンを作成します。
図	 62:仮想マシンの作成中
73	
	
仮想マシンが正常に作成されると下記の画面が表示されます。
図	 63:仮想マシンの作成完了
74	
	
仮想マシンの作成後、「ネットワーク セキュリティ グループ」の設定を行います。設定を変更する
ために、「リソース グループ」のリンクを押下してください。
作成した仮想マシンに DNS 名でアクセスができるように、ドメイン名の設定を行います。「リソース
グループ」から「Payara-Cluster-RS」を選択し、仮想マシン「YT-Payara-West-Node2」を選択し
てください。リソース一覧の中、仮想マシンを示すアイコンは下記になります。
図	 64:リソース	 グループ一覧の表示
75	
	
仮想マシン「YT-Payara-West-Node2」を選択すると下記の画面が表示されます。ここで「パブリ
ック IP アドレス/DNS 名ラベル」のリンクを押下してください。
図 65:仮想マシンの設定
76	
	
リンクを押下すると下記の画面が表示されます。ここで「構成」のリンクを押下してください。
図	 66:パブリック IP アドレスの設定
77	
	
「構成」のリンクを押下すると下記の画面が表示されます。「DNS 名ラベル(オプション)」に DNS
で名前解決するホスト名を記入し、「保存」ボタンを押下してください。
図 67:DNS で名前解決するホスト名の構成
以上で、Payara の2台目の仮想マシンの設定は完了です。設定した DNS のホスト名を利用し、
SSH でログインをしてください。
> ssh -l payara yt-payara-west-node2.japanwest.cloudapp.azure.com
The authenticity of host 'yt-payara-west-node2.japanwest.cloudapp.azure.com (40.74.81.120)'
can't be established.
RSA key fingerprint is 9e:af:8b:4b:91:d5:d1:a1:0e:f1:24:e7:00:f4:2e:bc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'yt-payara-west-
node2.japanwest.cloudapp.azure.com,40.74.81.120' (RSA) to the list of known hosts.
payara@yt-payara-west-node2.japanwest.cloudapp.azure.com's password:
78	
	
[Payara123456]
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64)
* Documentation: https://help.ubuntu.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
payara@YT-Payara-West-Node2:~$
ログインし、「payara@YT-Payara-West-Node2:~$」のプロンプトが表示されていれば正常に設定
が完了しています。
79	
	
タスク	4	: JDK 8 (OpenJDK) と必須パッケージのインストール
Payara でクラスタ環境を構築するために Ubuntu の Linux 仮想マシンを3台構成しました。そこ
で、これら3台に Payara を動作させるための環境を構築していきます。Ubuntu は Linux ディス
トリビューションの一つである Debian ベースとした OS です。Debian 系の OS では APT
(Advanced Packaging Tool) というパッケージ管理システムを用いて、パッケージの管理を行いま
す。
まず、「apt-get update」コマンドで APT ライブラリのインデックスを更新します
(/etc/apt/sources.list)。次に、「apt-get –y install」コマンドで、wget, unzip コマンドをインストー
ルします。これらのコマンドは後述する Payara のバイナリの入手と展開に利用します。
最後に、Payara を動作させるための Java の実行環境として JDK 8 をインストールします。
> ssh -l payara yt-payara-west-admin.japanwest.cloudapp.azure.com
SSH でログイン
payara@YT-Payara-West-Admin:~$ sudo apt-get update
payara@YT-Payara-West-Admin:~$ sudo apt-get -y install wget
payara@YT-Payara-West-Admin:~$ sudo apt-get -y install unzip
payara@YT-Payara-West-Admin:~$ sudo echo oracle-java8-installer shared/accepted-
oracle-license-v1-1 select true | sudo debconf-set-selections && sudo apt-get update &&
sudo apt-get install software-properties-common -y && sudo add-apt-repository -y
ppa:webupd8team/java -y && sudo apt-get update && sudo apt-get install oracle-java8-
installer -y && sudo apt-get install oracle-java8-set-default
80	
	
同様のコマンドを Node1 で実行してください。
> ssh -l payara yt-payara-west-node1.japanwest.cloudapp.azure.com
SSH でログイン
payara@YT-Payara-West-Node1:~$ sudo apt-get update
payara@YT-Payara-West-Node1:~$ sudo apt-get -y install wget
payara@YT-Payara-West-Node1:~$ sudo apt-get -y install unzip
payara@YT-Payara-West-Node1:~$ sudo echo oracle-java8-installer shared/accepted-
oracle-license-v1-1 select true | sudo debconf-set-selections && sudo apt-get update
&&sudo apt-get install software-properties-common -y && sudo add-apt-repository -y
ppa:webupd8team/java -y && sudo apt-get update && sudo apt-get install oracle-java8-
installer -y && sudo apt-get install oracle-java8-set-default
同様のコマンドを Node2 で実行してください。
> ssh -l payara yt-payara-west-node2.japanwest.cloudapp.azure.com
SSH でログイン
payara@YT-Payara-West-Node2:~$ sudo apt-get update
payara@YT-Payara-West-Node2:~$ sudo apt-get -y install wget
payara@YT-Payara-West-Node2:~$ sudo apt-get -y install unzip
payara@YT-Payara-West-Node2:~$ sudo echo oracle-java8-installer shared/accepted-
oracle-license-v1-1 select true | sudo debconf-set-selections && sudo apt-get update
&&sudo apt-get install software-properties-common -y && sudo add-apt-repository -y
ppa:webupd8team/java -y && sudo apt-get update && sudo apt-get install oracle-java8-
installer -y && sudo apt-get install oracle-java8-set-default
以上で、各環境で必要なコマンドと JDK のインストールは完了です。
ここまでの設定が完了したのち、今後コアダンプを取得するなどの特別なメンテナンス目的以外
では、基本的にノード(Node1, Node2)への SSH によるログインは不要です。全ての管理は「タス
ク 6 :」で設定する Payara のドメイン管理サーバ経由でおこないます。Payara の各ノードに対す
るインストールは「タスク 7 :」「タスク 8 :」で実施しますが、これらの環境は、全てドメイン管理サ
ーバ上から行います。
81	
	
タスク	5	: Payara ドメイン管理サーバのインストールと構築
Payara のドメイン管理サーバのインストールと構築を行います。まず Payara の最新のバイナリを
入手します。一般的にデスクトップ環境であれば、Payara の最新バイナリは下記の URL から入
手できます。
Payara の入手先:
http://www.payara.fish/all_downloads
図 68:Payara バイナリの入手先
しかし、今回 Azure 上に構築した Ubuntu の Linux 環境ではデスクトップを利用しないため、コマ
82	
	
ンドを利用してファイルを入手してください。Payara 4.1.1.162 の場合は、下記の URL から入手
ができます。コマンドを実行してファイルを入手してください。
payara@YT-Payara-West-Admin:~$ pwd
/home/payara
payara@YT-Payara-West-Admin:~$ wget https://s3-eu-west-
1.amazonaws.com/payara.co/Payara+Downloads/Payara+4.1.1.162/payara-4.1.1.162.zip
payara@YT-Payara-West-Admin:~$ ls
payara-4.1.1.162.zip
※上記 URL でファイルを入手できない場合、下記の URL でお試しください。
https://s3-eu-west-1.amazonaws.com/payara.co/Payara+Downloads/Payara+4.1.1.162/payara-
4.1.1.162.zip
ファイルを入手した後、Payara のインストールを行います。unzip コマンドでファイルを展開してく
ださい。ファイルを展開するとデフォルトで「payara41」というディレクトリが作成されます。インスト
ールした Payara のバージョンを一目で理解できるよう、mv コマンドで、ディレクトリ名を「payara-
4.1.1.162」に変更してください。以上でインストールは完了です。
payara@YT-Payara-West-Admin:~$ unzip payara-4.1.1.162.zip
payara@YT-Payara-West-Admin:~$ mv payara41 payara-4.1.1.162
次に、Payara のドメイン管理をかんたんにするために、環境変数を設定してください。vi などのエ
ディタを利用して、ホームディレクトリ配下に存在する.bashrc を編集して下記をファイルに追加し
てください。環境変数を追加した後、.bashrc の設定内容を再読み込みするために「source」コマ
ンドを実行してください。
~/.bashrc に下記を追加
payara@YT-Payara-West-Admin:~$ vi .bashrc
… (中略)
JAVA_HOME=/usr/lib/jvm/java-8-oracle
# AS_ADMIN_PASSWORDFILE=~/.passwordfile
PATH=$PATH:/home/payara/payara-4.1.1.162/bin
export JAVA_HOME
# export AS_ADMIN_PASSWORDFILE
export PATH
payara@YT-Payara-West-Admin:~$ source ~/.bashrc
83
84	
	
次に、asadmin コマンドを利用して Payara のドメインを起動してください。
payara@YT-Payara-West-Admin:~$ asadmin start-domain domain1
Waiting for domain1 to start ........
Successfully started the domain : domain1
domain Location: /home/payara/payara-4.1.1.162/glassfish/domains/domain1
Log File: /home/payara/payara-4.1.1.162/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.
備考:ドメインとドメイン管理サーバとは
「ドメイン」とは,アプリケーション・サーバの管理を行う上で必要なプロセスや,設定情報等をグル
ープ化した管理用の構成単位です。「図 69:ドメインとドメイン管理サーバとノード」において、橙色
で囲った構成を「ドメイン」といいます。
ドメインは「ドメイン管理サーバ」、「サーバ・インスタンス」、「ノードエージェント」、「各種リソース
(JDBC, JMS, JNDI)」等のさまざまなコンポーネントや設定情報から構成されています。Payara をイ
ンストールすると、デフォルトで「domain1」ドメインが生成されます。
ドメイン管理サーバは,ドメインを管理するための管理機能を含む、特別な Java EE の実行環境
(インスタンス)です。ドメインを管理するサーバと、サービスを提供する実行環境(インスタンス)を
分割するのは本番環境においてはセキュリティを高めるためにとても有効です。本ハンズオンで
も分割した構成を組みます。
ドメインに関する詳細:http://tinyurl.com/payara-domain
図 69:ドメインとドメイン管理サーバとノード
Payara のドメイン管理サーバを起動したのち、管理者のパスワードを変更してください。デフォル
トのパスワードは空文字のため、そのまま「Enter キー」を押下してください。次に新しい管理者パ
85	
	
スワード(例:adminadmin)を入力してください。
payara@YT-Payara-West-Admin:~$ asadmin --user admin change-admin-password --
domain_name domain1
Enter the admin password> [] ←空パスワード
Enter the new admin password> [adminadmin]
Enter the new admin password again> [adminadmin]
Command change-admin-password executed successfully.
次に、Payara の CLI(コマンド・ライン・インタフェース:asadmin コマンド)を簡単に扱えるように、
パスワードファイルを用意します。このファイルが存在しない場合は、コマンド実行時に毎回「管
理者名」と「パスワード」が問い合わせされます。しかし、このファイルを用意しておくことで、「管理
者名」、「パスワード」の入力を省略することができます。環境構築時は大量の asadmin コマンドを
実行しますので、このファイルを用意しておくと便利です。本番環境ではこのファイルは必ず削
除してください。
※ GlassFish v4.x/Payara 4.x では、AS_ADMIN_PASSWORD にパスワード ALIAS を利用できま
せん。生パスワードを入力してください。
payara@YT-Payara-West-Admin:~$ vi .passwordfile
AS_ADMIN_PASSWORD=adminadmin
下記の ~/.bashrc の青い太字で示す箇所、”AS_ADMIN_PASSWORDFILE”、 ”export
AS_ADMIN_PASSWORDFILE”をコメントアウトしてください。その後、source コマンドで変更内容
を反映してください。
payara@YT-Payara-West-Admin:~$ vi .bashrc
… (中略)
JAVA_HOME=/usr/lib/jvm/java-8-oracle
AS_ADMIN_PASSWORDFILE=~/.passwordfile
PATH=$PATH:/home/payara/payara-4.1.1.162/bin
export JAVA_HOME
export AS_ADMIN_PASSWORDFILE
export PATH
payara@YT-Payara-West-Admin:~$ source ~/.bashrc
設定内容を反映するために、ドメインを再起動してください。
86	
	
payara@YT-Payara-West-Admin:~$ asadmin restart-domain domain1
Successfully restarted the domain
Command restart-domain executed successfully.
次に、asadmin enable-secure-admin コマンドを利用しリモートからドメインを管理できるように設
定してください。これによりリモートからブラウザによるアクセス、リモートの asadmin コマンド実行、
リモート IDE からの管理ができるようになります。コマンドを実行した後、設定を反映するために
asadmin restart-domain コマンドでドメインを再起動してください。
payara@YT-Payara-West-Admin:~$ asadmin enable-secure-admin
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.
payara@YT-Payara-West-Admin:~$ asadmin restart-domain domain1
Successfully restarted the domain
Command restart-domain executed successfully.
87	
	
再起動した後、管理サーバの URL にアクセスしてください。
https://yt-payara-west-admin.japanwest.cloudapp.azure.com:4848
接続すると、SSL サーバ証明書が信頼された認証局から署名されていないため、下記のような画
面が表示されます。 ここで「エラー内容」のボタンを押下してください。
図 70:ドメイン管理サーバへのアクセス1
※	ブラウザに依存して表示内容は変わります、下記は Firefox を利用した場合の例です。
88	
	
ボタンを押下すると下記の画面が表示されます。ここで「例外を追加...」ボタンを押下してくださ
い。
図 71:ドメイン管理サーバへのアクセス 2
89	
	
ボタンを押下すると、下記のダイアログが表示されます。ここで「セキュリティ例外を承認」ボタンを
押下してください。押下すると、例外的にこのサーバ証明書を信頼し、以降の管理サーバへの接
続の際に上記エラー画面は表示されなくなります。
図 72:サーバ証明書のセキュリティ例外を承認
90	
	
「セキュリティ例外を承認」すると、下記のドメイン管理サーバの管理画面が表示されます。ここ
で、管理者のユーザ名、パスワードを入力し「Login」ボタンを押下してください。本ハンズオンで
は、上記までの過程で、「管理者のユーザ名:admin」、「パスワード:adminadmin」を設定していま
す。
図 73:ドメイン管理サーバ・ログイン画面
91	
	
管理者のユーザ名、パスワードを入力し正しく認証が完了すると下記の画面が表示されます。
図 74:ドメイン管理サーバの管理画面
以上で、Payara ドメイン管理サーバの起動と動作確認は終了です。
92	
	
タスク	6	:仮想ネットワーク設定の確認
Payara のドメイン管理サーバが稼働する仮想マシンから、Payara のノードが稼働する仮想マシン
に仮想ネットワークを通じてアクセスします。そこで、各仮想マシンに割り当てられている仮想ネッ
トワークの IP アドレスを確認します。Azure の管理ポータル画面からリソース グループを選択し
てください。
図	 75:リソースグループの選択
93	
	
リソース グループから「仮想ネットワーク」を選択してください。
図	 76:リソース一覧の表示
94	
	
「仮想ネットワーク」を選択すると下記の画面が表示されます。ここで、「接続デバイス」から、各仮
想マシンに割り当てられた IP アドレスを確認します。
IP アドレスを確認した後、Payara のドメイン管理サーバの/etc/hosts ファイルに、ホスト名と IP ア
ドレスを記載してください。
/etc/hosts に下記を追加
payara@YT-Payara-West-Admin:~$ sudo vi /etc/hosts
127.0.0.1 localhost yt-payara-west-admin
10.0.0.5 yt-payara-west-node1
10.0.0.6 yt-payara-west-node2
図	 77:仮想ネットワークの IP アドレス確認
95	
	
編集後、ファイルの内容を確認すると下記のような内容が記載されています。
payara@YT-Payara-West-Admin:~$ cat /etc/hosts
127.0.0.1 localhost yt-payara-west-admin
10.0.0.5 yt-payara-west-node1
10.0.0.6 yt-payara-west-node2
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
96	
	
タスク	7	:Payara のリモート・ノード1の構築
ここでは、Payara のリモート・ノード 1 を作成します。下記に示す、Payara のリモート・ノードの構
築作成作業はすべて、Payara ドメイン管理サーバから行います。
1. リモート・ノード接続用の SSH キー・ペアの作成とコピー
2. SSH 経由で、Payara のリモート・ノードのバイナリ・インストール
3. SSH 経由で、Payara のリモート・ノードのノードを構築
まず「asadmin setup-ssh」コマンドを利用して、Payara のドメイン管理サーバから、Payara のリモ
ート・ノードに接続するために、SSH のキー・ペアを作成します。来いー・ペアを作成したのち、パ
ブリック・キー・ファイルを認証対象のホスト(リモート・ノード1)にコピーします。これにより、リモー
ト・ノードに対する操作を行う際に、毎回ログインは不要になります。
payara@YT-Payara-West-Admin:~$ asadmin setup-ssh yt-payara-west-node1
SSH key not found for user payara
Would you like to generate a SSH key pair (without a key passphrase) for payara to access [yt-
payara-west-node1]? [y/n]:y
Enter remote password for payara@yt-payara-west-node1> [Payara123456]
/usr/bin/ssh-keygen successfully generated the identification /home/payara/.ssh/id_rsa
Copied keyfile /home/payara/.ssh/id_rsa.pub to payara@yt-payara-west-node1
Fixing file permissions for home(755), .ssh(700) and authorized_keys file(644)
Successfully connected to payara@yt-payara-west-node1 using keyfile
/home/payara/.ssh/id_rsa
Command setup-ssh executed successfully.
97	
	
次に、「asadmin install-node」コマンドを利用し、Payara のドメイン管理サーバから、Payara のリモ
ート・ノードをインストールします。
このコマンドを実行すると、コマンド実行時に内部で下記の操作が行われています。
1. SSH キー・ファイルを利用し、リモート・ノードへ接続
2. ドメイン管理サーバから、リモート・ノード構築用の zip アーカイブ作成
3. 作成したアーカイブ・ファイルをリモート・ノードへコピー
4. コピーした Payara のアーカイブ・ファイルを展開
5. コピーしたファイルの削除
6. ファイル・パーミッションの設定
payara@YT-Payara-West-Admin:~$ asadmin install-node-ssh yt-payara-west-node1
Successfully connected to payara@yt-payara-west-node1 using keyfile
/home/payara/.ssh/id_rsa
Created installation zip /home/payara/glassfish7212654026454846128.zip
Successfully connected to payara@yt-payara-west-node1 using keyfile
/home/payara/.ssh/id_rsa
Copying /home/payara/glassfish7212654026454846128.zip (119410318 bytes) to yt-payara-
west-node1:/home/payara/payara-4.1.1.162
Installing glassfish7212654026454846128.zip into yt-payara-west-
node1:/home/payara/payara-4.1.1.162
Removing yt-payara-west-node1:/home/payara/payara-
4.1.1.162/glassfish7212654026454846128.zip
Fixing file permissions of all bin files under yt-payara-west-node1:/home/payara/payara-
4.1.1.162
Fixing file permissions for nadmin file under yt-payara-west-node1:/home/payara/payara-
4.1.1.162/glassfish/lib
Command install-node-ssh executed successfully.
98	
	
次に、Payara ドメイン管理サーバから、SSH 経由で管理可能なリモート・ノードを作成します。
payara@YT-Payara-West-Admin:~$ asadmin create-node-ssh --nodehost yt-payara-west-
node1 yt-payara-west-node1
Command create-node-ssh executed successfully.
最後に、Payara ドメイン管理サーバで、ノードの一覧を確認し作成したノードが追加されているこ
とを確認してください。
payara@YT-Payara-West-Admin:~$ asadmin list-nodes
localhost-domain1 CONFIG localhost
yt-payara-west-node1 SSH yt-payara-west-node1
Command list-nodes executed successfully.
99	
	
タスク	8	:Payara のリモート・ノード 2 の構築
ここでは、Payara のリモート・ノード 2 を作成します。下記に示す、Payara のリモート・ノードの構
築作成作業はすべて、Payara ドメイン管理サーバから行います。手順はリモート・ノード 1 と同様
です。
payara@YT-Payara-West-Admin:~$ asadmin setup-ssh yt-payara-west-node2
Enter remote password for payara@yt-payara-west-node2> [Payara123456]
Copied keyfile /home/payara/.ssh/id_rsa.pub to payara@yt-payara-west-node2
Fixing file permissions for home(755), .ssh(700) and authorized_keys file(644)
Successfully connected to payara@yt-payara-west-node2 using keyfile
/home/payara/.ssh/id_rsa
Command setup-ssh executed successfully.
次に、「asadmin install-node」コマンドを利用し、Payara のドメイン管理サーバから、Payara のリモ
ート・ノードをインストールします。こちらも手順はリモート・ノード 1 と同様です。
payara@YT-Payara-West-Admin:~$ asadmin install-node-ssh yt-payara-west-node2
Successfully connected to payara@yt-payara-west-node2 using keyfile
/home/payara/.ssh/id_rsa
Created installation zip /home/payara/glassfish5926265772732403108.zip
Successfully connected to payara@yt-payara-west-node2 using keyfile
/home/payara/.ssh/id_rsa
Copying /home/payara/glassfish5926265772732403108.zip (119410318 bytes) to yt-payara-
west-node2:/home/payara/payara-4.1.1.162
Installing glassfish5926265772732403108.zip into yt-payara-west-
node2:/home/payara/payara-4.1.1.162
Removing yt-payara-west-node2:/home/payara/payara-
4.1.1.162/glassfish5926265772732403108.zip
Fixing file permissions of all bin files under yt-payara-west-node2:/home/payara/payara-
4.1.1.162
Fixing file permissions for nadmin file under yt-payara-west-node2:/home/payara/payara-
4.1.1.162/glassfish/lib
Command install-node-ssh executed successfully.
次に、Payara ドメイン管理サーバから、SSH 経由で管理可能なリモート・ノードを作成します。こち
100	
	
らも手順はリモート・ノード 1 と同様です。
payara@YT-Payara-West-Admin:~$ asadmin create-node-ssh --nodehost yt-payara-west-
node2 yt-payara-west-node2
Command create-node-ssh executed successfully.
最後に、Payara ドメイン管理サーバで、ノードの一覧を確認し作成したノードが追加されているこ
とを確認してください。
payara@YT-Payara-West-Admin:~$ asadmin list-nodes
localhost-domain1 CONFIG localhost
yt-payara-west-node1 SSH yt-payara-west-node1
yt-payara-west-node2 SSH yt-payara-west-node2
Command list-nodes executed successfully.
101	
	
タスク	9	: Payara クラスタの作成とインスタンス作成
「タスク 7 :」、「タスク 8 :」で、Payara のリモート・ノードのインストールと SSH 経由で管理が可能
なノードを作成し、ドメイン管理サーバから管理ができるように設定しました。ここでは、作成したノ
ード上で、クラスタ環境を構築し、各ノードで Web アプリケーションを動作させるためのインスタン
スを作成します。
1. 冗長化を行うためのインメモリ・グリッド(hazelcast)の設定
2. Payara クラスタの作成
3. クラスタ内にインスタンスを作成(node1 用)
4. クラスタ内にインスタンスを作成(node2 用)
5. インスタンスの稼働状態の確認
6. クラスタの起動と動作確認
Payara のドメイン管理サーバが稼働する仮想マシンで、設定ファイルが格納されているディレクト
リ(/home/payara/payara-4.1.1.162/glassfish/domains/domain1/config)に移動してください。
payara@YT-Payara-West-Admin:~$ cd /home/payara/payara-
4.1.1.162/glassfish/domains/domain1/config
payara@YT-Payara-West-Admin:~/payara-4.1.1.162/glassfish/domains/domain1/config$ pwd
/home/payara/payara-4.1.1.162/glassfish/domains/domain1/config
102	
	
次に、「タスク 10 :」でセッション・レプリケーションを行うために、事前に下記の Hazelcast の設定
ファイル(hazelcast-config.xml)を作成してください。ここで1点注意してください。Azure は仮想ネ
ットワークでマルチキャスト通信が利用できません。そこで、Hazelcast 間の通信に、マルチキャス
トを無効化し、TCP-IP による通信を有効化してください。「<member>」は、Payara のリモート・ノー
ド(Hazelcast が稼働するノード)の仮想ネットの IP アドレスを記述します、この時すべての IP アド
レスを列挙、もしくは、下記の記載例のように範囲を指定できます。
hazelcast-config.xml の記載内容
payara@YT-Payara-West-Admin:~/payara-4.1.1.162/glassfish/domains/domain1/config$ vi
hazelcast-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-
3.4.xsd"
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<network>
<port auto-increment="true">5701</port>
<join>
<multicast enabled="false">
<multicast-group>228.9.217.207</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="true" >
<member>10.0.0.4-6</member>
</tcp-ip>
</join>
<interfaces enabled="true">
<interface>10.0.0.*</interface>
</interfaces>
</network>
</hazelcast>
103	
	
Hazelcast の設定を記述した後、「asadmin create-cluster」コマンドを利用し、Payara のドメイン管
理サーバでクラスタを作成してください。
payara@YT-Payara-West-Admin:~$ asadmin create-cluster cluster1
Command create-cluster executed successfully.
次に、「asadmin create-instance」コマンドを利用し、クラスタ内に所属するインスタンス(Java EE
の実行環境)を作成します、「リモート・ノード 1」、「リモート・ノード 2」それぞれに、インスタンスを1
つづず作成します。「--node」オプションには、インスタンスが稼働するリモート・ノードを指定して
ください。「--cluster」オプションには、所属するクラスタ名を記載し、最後にインスタンスの名前を
記載してください。
まず、ノード「yt-payara-west-node1」に、クラスタ「cluster1」に所属するインスタンス「instance1」
を作成してください。
payara@YT-Payara-West-Admin:~$ asadmin create-instance --node yt-payara-west-node1 --
cluster cluster1 instance1
Command _create-instance-filesystem executed successfully.
Port Assignments for server instance instance1:
OSGI_SHELL_TELNET_PORT=26666
JAVA_DEBUGGER_PORT=29009
JMS_PROVIDER_PORT=27676
HTTP_LISTENER_PORT=28080
IIOP_SSL_LISTENER_PORT=23820
ASADMIN_LISTENER_PORT=24848
IIOP_SSL_MUTUALAUTH_PORT=23920
JMX_SYSTEM_CONNECTOR_PORT=28686
HTTP_SSL_LISTENER_PORT=28181
IIOP_LISTENER_PORT=23700
The instance, instance1, was created on host yt-payara-west-node1
Command create-instance executed successfully.
104	
	
次に、ノード「yt-payara-west-node2」に、クラスタ「cluster1」に所属するインスタンス「instance2」
を作成してください。
payara@YT-Payara-West-Admin:~$ asadmin create-instance --node yt-payara-west-node2 --
cluster cluster1 instance2
Command _create-instance-filesystem executed successfully.
Port Assignments for server instance instance2:
OSGI_SHELL_TELNET_PORT=26666
JAVA_DEBUGGER_PORT=29009
JMS_PROVIDER_PORT=27676
HTTP_LISTENER_PORT=28080
IIOP_SSL_LISTENER_PORT=23820
ASADMIN_LISTENER_PORT=24848
IIOP_SSL_MUTUALAUTH_PORT=23920
JMX_SYSTEM_CONNECTOR_PORT=28686
HTTP_SSL_LISTENER_PORT=28181
IIOP_LISTENER_PORT=23700
The instance, instance2, was created on host yt-payara-west-node2
Command create-instance executed successfully.
コマンドを実行すると、インスタンスに対して設定されたポート番号の一覧が表示されます。ブラ
ウザなど HTTP クライアントは、通常 HTTP の「Well Known Port」として 80 番ポートに対して接
続しますが、ここで生成したクラスタのインスタンスが提供する HTTP サービスは、
HTTP_LISTENER_PORT で記載されたポート番号(ここでは、28080)に対して接続します。この値
は、asadmin コマンド、もしくは GUI の管理画面を利用して後から確認することもできますが、重
要な値ですのでメモしておくことをお勧めします。
コマンドを実行した後、「asadmin list-instances」コマンドで、インスタンスの一覧と稼働状況を確
認してください。現在クラスタは起動していないため、いずれのインスタンスも「not running」が表
示されています。
payara@YT-Payara-West-Admin:~$ asadmin list-instances
instance1 not running
instance2 not running
Command list-instances executed successfully.
105	
	
クラスタを起動するために、「asadmin start-cluster」コマンドを実行してください。コマンドの実行
に成功した後、再度「asadmin list-instances」コマンドでインスタンスの稼働状況を確認し
「running」が表示されていることを確認してください。
payara@YT-Payara-West-Admin:~$ asadmin start-cluster cluster1
Command start-cluster executed successfully.
payara@YT-Payara-West-Admin:~$ asadmin list-instances
instance1 running
instance2 running
Command list-instances executed successfully.
以上で、クラスタのインスタンスが正常に起動しましたので、動作確認をしてください。
106	
	
リモート・ノード 1 のホスト名とポート番号(HTTP_LISTENER_PORT)にアクセスし下記の画面が表
示されることを確認してください。
例:
http://yt-payara-west-node1.japanwest.cloudapp.azure.com:28080
図 78:リモート・ノード1の動作確認
107	
	
同様に、リモート・ノード 2 のホスト名とポート番号(HTTP_LISTENER_PORT)にアクセスし下記の
画面が表示されることを確認してください。
例:
http://yt-payara-west-node2.japanwest.cloudapp.azure.com:28080
図 79:リモート・ノード2の動作確認
108	
	
タスク	10	: 高可用性設定 (Hazelcast によるセッション・レプリケーション設定)
「タスク 9 :」までで、Payara のクラスタ環境を構築しました。ここでは、作成したクラスタに対して、
Payara に付属する Hazelcast を利用して高可用性の設定を行います。
Payara 上の Hazelcast に関する設定方法の概要は、下記の URL に詳しく記載されています。
詳細は下記からも確認できます。
https://github.com/payara/Payara/wiki/Hazelcast-(Payara-4.1.151)#32-enabling-hazelcast-
using-asadmin
本ハンズオン ラボでは下記の手順に従い高可用性の設定を行います。
1. クラスタ内の Hazelcast のメンバーの一覧表示と動作確認
2. クラスタ内の Hazelcast の設定の有効化
3. クラスタ内の Hazelcast のメンバーの一覧表示と動作確認
4. Web コンテナの高可用性の有効化
5. EJB コンテナの高可用性の有効化
まず、「asadmin list-hazelcast-members」コマンドで、クラスタ(cluster1)に所属するHazelcastのメン
バーの一覧と稼働状況を確認します。現時点でHazelcastの設定は無効化されていますので、下
記のように、各インスタンスで「Hazelcast is not enabled」と表示されます。
payara@YT-Payara-West-Admin:~$ asadmin list-hazelcast-members --target=cluster1
instance1:
Hazelcast is not enabled
instance2:
Hazelcast is not enabled
Command list-hazelcast-members executed successfully.
109	
	
次に、Hazelcast を有効にします。Payara の各ノードで Hazelcast のインスタンスを有効化し、起
動するために「asadmin set-hazelcast-configuration –-enabled=true」コマンドを実行してくださ
い。この際、「--dynamic=true」のオプションを指定し、クラスタを再起動せずに、Hazelcast を起
動します。
payara@YT-Payara-West-Admin:~$ asadmin set-hazelcast-configuration --target=cluster1 --
enabled=true --dynamic=true
instance1:
Hazelcast status set to true on cluster1
instance2:
Hazelcast status set to true on cluster1
Command set-hazelcast-configuration executed successfully.
起動したのち、再度「asadmin list-hazelcast-members」コマンドで、クラスタ(cluster1)に所属する
Hazelcast のメンバーの一覧と稼働状況を確認してください。正常に Hazelcast が起動されてい
る場合、下記のようにインスタンス毎に、Hazelcast のメンバーが含まれていることを確認できま
す。
payara@YT-Payara-West-Admin:~$ asadmin list-hazelcast-members --target=cluster1
instance1:
{ instance1-/10.0.0.5:5701-this instance2-/10.0.0.6:5701 }
instance2:
{ instance1-/10.0.0.5:5701 instance2-/10.0.0.6:5701-this }
Command list-hazelcast-members executed successfully.
110	
	
Hazelcast が有効化され、インスタンスが起動したので、Hazelcast を利用したセッション・レプリケ
ーションができるように Web コンテナ、EJB コンテナの設定をそれぞれ有効にします。
まず、クラスタ内に含まれる Web コンテナの、セッション情報保存先を Hazelcast に設定してくだ
さい。
payara@YT-Payara-West-Admin:~$ asadmin set cluster1.availability-service.web-container-
availability.persistence-type=hazelcast
instance1:
cluster1.availability-service.web-container-availability.persistence-type=hazelcast
instance2:
cluster1.availability-service.web-container-availability.persistence-type=hazelcast
cluster1.availability-service.web-container-availability.persistence-type=hazelcast
Command set executed successfully.
次に、クラスタ内に含まれる EJB コンテナの、ステートフル・セッション・ビーンの情報保存先を
Hazelcast に設定してください。
payara@YT-Payara-West-Admin:~$ asadmin set cluster1.availability-service.ejb-container-
availability.sfsb-ha-persistence-type=hazelcast
instance1:
cluster1.availability-service.ejb-container-availability.sfsb-ha-persistence-type=hazelcast
instance2:
cluster1.availability-service.ejb-container-availability.sfsb-ha-persistence-type=hazelcast
cluster1.availability-service.ejb-container-availability.sfsb-ha-persistence-type=hazelcast
Command set executed successfully.
以上で、クラスタにおける高可用性の設定は完了です。
111	
	
タスク	11	:ロードバランサの設定
「タスク 10 :」までで、Payara の管理サーバ、Payara のリモート・ノード1、リモート・ノード2を作成
し、クラスタ環境、高可用性の設定を行いました。ここでは、作成した2つのリモート・ノードに対し
て、リクエストの負荷分散を行うためのロードバランサ設定を行います。手順は下記に従い実施じ
します。
1. ロードバランサの作成
2. バックエンドアドレスプールの設定
3. プローブの設定
4. 負荷分散規則の設定
5. パブリック IP アドレスに対する DNS ホスト名の設定
6. 動作確認
ここまでの設定で、下記の URL に対してアクセスすることで、各リモート・ノードで提供する Web
のページにアクセスし表示することが可能でした。
http://yt-payara-west-node1.japanwest.cloudapp.azure.com:28080
112	
	
http://yt-payara-west-node2.japanwest.cloudapp.azure.com:28080
この設定を全て完了すると、下記の単一 URL に対してアクセスすれば、Web のページを表示す
ることができるようになります。実際のコンテンツは上記に示した URL に示すコンテンツが表示さ
れます。
http://yt-lb-west.japanwest.cloudapp.azure.com
113	
	
それでは早速、ロードバランサの設定を行います。Azure のポータルより「リソース グループ」のリ
ンクを押下してください。すると下記の画面が表示されます。ここで対象の「リソース グループ」と
して「Payara-Cluster-RS」を選択してください。
図	 80:リソース・グループ一覧の表示
114	
	
「Payara-Cluster-RS」を選択すると下記の画面が表示されます。ここで「追加」ボタンを押下してく
ださい。
図	 81:リソース	 グループの選択
115	
	
「追加」ボタンを押下したのち、検索フィルターで「Load Balancer」と入力し「Enter キー」を押下し
てください。すると Azure で作成可能な「Load Balancer」のサービスの一覧が表示されます。ここ
で「公開元」が「Microsoft」、「カテゴリ」が「ネットワーキング」の項目を選択してください。
図	 82:Load	Balancer	 の選択
116	
	
対象の「Load Balancer」を選択すると下記の画面が表示されます。「作成」ボタンを押下してくだ
さい。
図 83:Load Balancer の作成
117	
	
「作成」ボタンを押下すると下記の画面が表示されます。ここで、「名前」を入力し、次に「パブリッ
ク IP アドレス」を選択してください。
図 84:Load Balancer の作成
118	
	
「パブリック IP アドレス」の項目を選択すると下記の画面が表示されますので、「新規作成」を押
下してください。
図	 85:パブリック IP アドレスの選択
119	
	
「新規作成」を押下すると下記の画面が表示されます。ここで「名前」を入力し「OK」ボタンを押下
してください。
図	 86:パブリック IP アドレスの作成
120	
	
「パブリック IP アドレス」を作成すると下記の画面に戻ります。最後に「作成」ボタンを押下してく
ださい。
図 87:Load Balancer の作成
121	
	
「作成」ボタンを押下すると、最終的に下記のような画面が表示されます。
図 88:Load Balancer の作成
122	
	
「Load Balancer」を作成したのち、再度「リソース グループ」を押下してください。押下すると一覧
が表示されますので、対象の「リソース グループ」として「Payara-Cluster-RS」を選択してくださ
い。
図	 89:リソース	 グループ一覧の表示
123	
	
「リソース グループ」を選択すると下記の画面が表示されます。ここで下記に示す「Load
Balancer」のアイコンが追加されていることを確認できます。この「Load Balancer」のアイコンを選
択してください。
図 90:リソースの一覧表示
124	
	
選択すると下記の「Load Balancer」の設定画面が表示されます。この設定画面から「バックエンド
プール」、「IP アドレス」、「プローブ」、「負荷分散規則」の設定をそれぞれ行います。
まず、はじめに「バックエンド プール」の項目を選択してください。
図	 91:Load	Balancer の設定
125	
	
選択すると下記の画面が表示されます。ここで「追加」ボタンを押下してください。
図	 92:バックエンドアドレスプールの作成
126	
	
「追加」ボタンを押下すると下記の画面が表示されます。ここで、このプールに付ける「名前」を入
力し、「仮想マシンの追加」のリンクを押下してください。
図	 93:バックエンドアドレスプールの追加
127	
	
「仮想マシンの追加」を押下すると下記の画面が表示されます。仮想マシンを選択するために、
「可用性セットの選択」を押下してください。リモート・ノードを作成する際に、正しく「可用性セッ
ト」として作成している場合、下記のように「可用性セットの選択」欄に「Payara-West-Node」が表
示されます。表示されている「Payara-West-Node」を選択してください。
仮に、可用性セットが表示されていない場合、リモート・ノードを再度「可用性セット」として作成し
てください。
図	 94:可用性セットの選択
128	
	
「可用性セット」を選択したのち、「仮想マシンの選択」を行います。「可用性セット」に含まれる2
つのリモート・ノードの仮想マシン「YT-Payara-West-Node1」、「YT-Payara-West-Node2」を選
択し「選択」ボタンを押下してください。
図	 95:仮想マシンの選択
129	
	
「可用性セット」、「仮想マシン」を正しく設定すると下記の画面が表示されます。「OK」ボタンを押
下してください。
図 96:仮想マシンの選択
130	
	
ボタンを押下すると下記の画面が表示されます。最後に、画面上部の「保存」ボタンを押下してく
ださい。
図	 97:バックエンド	 アドレス	 プールの作成
131	
	
「保存」ボタンを押下すると、下記の画面が表示されます。設定完了までしばらくお待ちください。
図	 98:バックエンド	 アドレス	 プールの作成
132	
	
正しく設定が完了すると下記の画面が表示されます。
図	 99:バックエンド	 アドレス	 プールの作成
133	
	
つづいて、「プローブ」の設定を行います。「プローブ」の項目し「追加」ボタンを押下してくださ
い。
図	 100:プローブの設定
134	
	
「追加」ボタンを押下すると下記の画面が表示されます。ここでプローブに付ける「名前」を入力
し、「ポート」に「28080」を指定してください。ここで指定する値はバックエンドのリモート・ノードで
提供する HTTP のポート番号を指定します。異なる HTTP ポート番号を使用している場合は、適
切なポート番号を指定してください。
図 101:プローブの設定
135	
	
正しく、プローブを設定すると下記の画面が表示されます。
図	 102:プローブの設定
136	
	
つづいて、「負荷分散規則」の設定を行います。設定より「負荷分散規則」の項目を選択し「追
加」ボタンを押下してください。
図	 103:負荷分散規則の追加
137	
	
「追加」ボタンを押下すると下記の画面が表示されます。ここで「負荷分散規則」に対して付ける
「名前」を入力し、「プロトコル」として「TCP」、「ポート」として「80」、「バックエンド ポート」として
「28080」、「バックエンド プール」、「プローブ」それぞれに、事前作成した「yt-west-back-pool」、
「yt-west-payara-instance-prove」を選択してください。
図 104:負荷分散規則の追加
138	
	
さらに、画面をスクロールし「セッション永続化」に「クライアント IP とプロトコル」を選択し「保存」ボ
タンを押下してください。この設定はいわゆるスティッキーの設定で一度アクセスした仮想マシン
に継続してアクセスするようになります。
図 105:セッション永続化設定
139	
	
最後に、「Load Balancer」に対してアクセスする際の DNS ホスト名の設定を行います。設定画面
より、「パブリック IP アドレス」のリンクを押下してください。
図 106:DNS ホスト名の設定
140	
	
「パブリック IP アドレス」のリンクを押下すると下記の画面が表示されます。ここで「構成」の項目を
選択してください。
図	 107:パブリック IP アドレスの構成
141	
	
「構成」を選択すると下記の画面が表示されます。「DNS 名ラベル(オプション)」に「Load
Balancer」に対するホスト名(yt-lb-west)を入力し「保存」ボタンを押下してください。
図 108:DNS のホスト名設定
設定を保存することで、下記の URL で「Load Balancer」に対してアクセスできるようになります。
http://yt-lb-west.japanwest.cloudapp.azure.com
以上で、「Load Balancer」の設定は完了です。
142	
	
それでは、設定した「Load Balancer」のホスト名でアクセスしてみましょう。ブラウザに下記の URL
を入力してアクセスしてください。
http://yt-lb-west.japanwest.cloudapp.azure.com
図 109:LB 経由での動作確認画面
上記の画面が正しく表示されれば、正常に設定が完了しています。
143	
	
タスク	12	: 高可用性アプリケーションの作成と動作確認
つづいて、簡単な Java EE の Web アプリケーションを作成し、冗長構成の動作確認をしてみま
しょう。
1. Web アプリケーションの作成
2. Web アプリケーションのクラスタに対するデプロイ
3. Load Balancer 経由で Web アプリケーションにアクセス、情報の保存
4. 稼働中インスタンスの停止
まず、Web アプリケーションを作成しましょう。統合開発環境を利用して Java EE のプロジェクトを
作ってみましょう。NetBeans を利用している場合メニューから「ファイル(F)」→「新規プロジェクト
(W)...」を選択してください。
図 110:新規プロジェクトの作成
144	
	
選択すると下記の画面が表示されます。「カテゴリ(C):」から「Maven」を選択し、「プロジェクト(P):」
から「Web アプリケーション」を選択し「次 >」ボタンを押下してください。
図 111:新規プロジェクトの作成
145	
	
押下すると下記の画面が表示されます。「プロジェクト名(N):」に名前を入力し「次 >」ボタンを押
下してください。
図 112:新規 Web アプリケーション
146	
	
ボタンを押下すると下記の画面が表示されます。「サーバ:」に「GlassFish Server」を選択し、
「Java EE バージョン(J):」に「Java EE 7 Web」を選択し「終了(F)」ボタンを押下してください。
図 113:新規 Web アプリケーション
147	
	
ボタンを押下すると、「プロジェクト」のタブに「Payara-Cluster-Sample」というプロジェクトが作成さ
れます。
図 114:Web プロジェクトの作成
148	
	
「Web ページ」のディレクトリを展開すると「index.html」ファイルが作成されています。このファイル
は今回不要ですので、マウス右クリックをし「削除」を選択しファイルを削除してください。
図 115:index.html ファイルの削除
149	
	
次に、新しい Web ページを作成します。今回は JSF の Web ページ(Facelets)として作成するた
め、「Web ページ」ディレクトリを右クリックし「新規」→「その他...」を選択してください。
図 116:新規 Web ページの作成
150	
	
選択すると下記の画面が表示されます。ここで「カテゴリ(C):」より「Web」、「ファイル・タイプ(F):」より
「JSF ページ」を選択し「次 >」ボタンを押下してください。
図 117:新規 Web ページの作成
151	
	
ボタンを押下すると下記の画面が表示されます。ここで「ファイル名:」に「index」と入力し「終了
(F)」ボタンを押下してください。
図 118:新規 Web ページの作成
終了すると、下記の「index.xhtml」ファイルが作成されます。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
Hello from Facelets
</h:body>
</html>
152	
	
作成された「index.xhtml」ファイルを編集し、下記の内容を記述してください。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<H1>セッション・テスト</H1><br></br>
<h:form>
実行環境:
<h:outputText id="runenv" value="#{indexPage.hostInfo}"/><br></br>
セッション ID:
<h:outputText id="session" value="#{indexPage.sessionID}"/><p></p>
入力値:
<h:inputText id="data" value="#{indexPage.data}"/>
<h:commandButton id="submit" value="実行"
action="#{indexPage.submitButton()}"/><br></br>
入力された値:
<h:outputText id="odata" value="#{indexPage.data}"/><p></p>
</h:form>
<br />
</h:body>
</html>
153	
	
図 119:作成した index.xhtml (Facelets) の表示内容
154	
	
つづいて、JSF ページのバックエンド処理を実装します。「ソース・パッケージ」をマウス右クリック
で選択し「新規」→「Java クラス...」を選択してください。
図 120:JSF バッキング・ビーンの作成
155	
	
選択すると下記の画面が表示されます。「クラス名(N):」に、index.xhtml ファイルに対応するバッ
キング・ビーンであることが分かる名前「IndexPage」をつけ、「終了(F)」ボタンを押下してください。
図 121:JSF バッキング・ビーンの作成
156	
	
ボタンを押下すると、下記の「IndexPage.java」ファイルが自動作成されます。
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.yoshio3;
/**
*
* @author Yoshio Terada
*/
public class IndexPage {
}
157	
	
上記のクラスに、下記のコードを追加して保存してください。
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.yoshio3;
import java.io.Serializable;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpServletRequest;
@Named(value = "indexPage")
@SessionScoped
public class IndexPage implements Serializable{
private final static Logger LOGGER =
Logger.getLogger(IndexPage.class.getName());
private String data ;
private String sessionID;
private String hostInfo;
/* ホスト名の取得 */
public String getHostInfo(){
String host = "";
InetAddress IPaddress;
try {
IPaddress = InetAddress.getLocalHost();
host = IPaddress.getHostName() + "/" +IPaddress.getHostAddress() ;
} catch (UnknownHostException ex) {
158	
	
LOGGER.log(Level.SEVERE, null, ex);
}
return host;
}
/* セッション ID の取得 */
public String getSessionID(){
HttpServletRequest request = (HttpServletRequest)FacesContext
.getCurrentInstance()
.getExternalContext()
.getRequest();
sessionID = request.getSession().getId();
return sessionID;
}
public String submitButton(){
return "";
}
/**
* @return the data
*/
public String getData() {
return data;
}
/**
* @param data the data to set
*/
public void setData(String data) {
this.data = data;
}
}
159	
	
つづいて、本 Web アプリケーションを分散環境で動作させるための設定を行います。メニューよ
り「WEB-INF」を展開し「web.xml」ファイルをダブルクリックしてください。
図 122:web.xml ファイルの編集
ダルブ・クリックすると、下記の XML ファイルが表示されます。ここで、「<distributable/>」の要素
を追加して保存してください。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
160	
	
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
<distributable/>
</web-app>
以上で、プログラムの作成は完了です。プロジェクトを右クリックしメニューよろ「ビルド」を実行し
てください。
図 123:プロジェクトのビルド
ビルドを実施したのち、「実行」してください。
161	
	
図 124:Web アプリケーションの実行
実行すると、ローカル環境で下記が表示されます。
図 125:Web アプリケーションの実行
次に、
ローカルでの動作確認を終えたのち、Azure の Payara にデプロイします。Payara のドメイン管理
162	
	
サーバにアクセスしてください。
例:
https://yt-payara-west-admin.japanwest.cloudapp.azure.com:4848
図 126:Payara ドメイン管理サーバへの接続
163	
	
接続したのち、メニューから「Applications」を選択してください。選択すると下記の画面が表示さ
れます。ここで「Deploy...」ボタンを押下してください。
図 127:アプリケーションのデプロイ画面
ボタンを押下すると下記の画面が表示されます。「ファイルを選択」ボタンを押下してください。
図 128:Web アプリケーションのデプロイ
164
165	
	
ボタンを押下すると、下記のように Windows の場合「Explorer」、Mac の場合「Finder」が表示され
ます。ここで、NetBeans のプロジェクトから作成したプロジェクト「Payara-Cluster-Sample」を開
き、「target」ディレクトリ配下に存在する「Payara-Cluster-Sample-1.0-SNAPSHOT.war」ファイル
を選択し「開く」ボタンを押下してください。
図 129:Finder から war ファイルの選択
ボタンを押下すると、下記の画面が表示されます。「Context Root」の名前を「Payara-Cluster-
Sample」に変更し、「Availability」の「Enabled」にチェックし、「Targets」から「cluster1」を「Add >」
で追加し、最後に「OK」ボタンを押下してください。
166	
	
図 130:アプリケーションのデプロイ時の設定
167	
	
ボタンを押下すると、クラスタに対してデプロイされます。デプロイが完了した後、Load Balancer
経由で Web アプリケーションにアクセスしてください。コンテキスト・ルートで指定した「Payara-
Cluster-Sample」をアドレスに記述します。
例:
http://yt-lb-west.japanwest.cloudapp.azure.com/Payara-Cluster-Sample
上記アドレスにアクセスすると下記の画面が表示されます。
図 131:LB 経由で Web アプリケーションの実行
上記によると、Load Balancer 経由で、「YT-Payara-West-Node2」にアクセスしていることがわか
ります。また後ほど比較するため、、セッション ID(ここでは 18558c3b0f1c264172bcbde7689b)も
メモ帳、もしくはテキストなどに控えておいてください。つづいて、「入力値」のテキスト・フィールド
に適当な値を入力し「実行」ボタンを押下してください。ここでは例として「20」を入力し実行ボタ
ンを押下します。
168	
	
ボタンを押下すると下記の画面が表示されます。セッションに正しく値「20」が保存されていること
を確認してください。
図 132:サンプル値の入力
次に、障害発生時を想定し、現在動作しているノード(この例では Node2)を明示的に停止させて
みます。現在「YT-Payara-West-Node2」のインスタンスでアプリケーションが動作していますの
で、このノードを明示的に停止します。
169	
	
ドメイン管理サーバの管理画面にアクセスしてください。
例
https://yt-payara-west-admin.japanwest.cloudapp.azure.com:4848
管理画面のメニューの「Clusters」から作成したクラスタ「cluster1」を選択してください。選択すると
下記の画面が表示されます。
図 133:ドメイン管理サーバよりクラスタの操作
170	
	
次に右ペインの上部から「Instances」のタブを選択してください。選択すると下記の画面が表示さ
れます。
図 134:ドメイン管理サーバへの接続
171	
	
ここで、「instance2」の「Select」にチェックし、「Stop」ボタンを押下してください。
図 135:クラスタ内で稼働中のインスタンス確認
正常にインスタンスが停止されると下記の画面が表示されます。「instance2」の「Status」が
「Running」から「Stopped」に変わっていることを確認してください。
図 136:インスタンスの停止
172	
	
上記の GUI からインスタンスを停止するのではなく、「asadmin コマンド」からインスタンスを停止
する場合は、「asadmin stop-instance」コマンドを実行します。「asadmin list-instances」コマンドで
インスタンスの一覧と動作状況を確認してください。
payara@YT-Payara-West-Admin:~$ asadmin list-instances
instance1 running
instance2 running
Command list-instances executed successfully.
payara@YT-Payara-West-Admin:~$ asadmin stop-instance instance2
The instance, instance2, is stopped.
Command stop-instance executed successfully.
payara@YT-Payara-West-Admin:~$ asadmin list-instances
instance1 running
instance2 not running
Command list-instances executed successfully.
payara@YT-Payara-West-Admin:~$
※インスタンスの起動は「asadmin start-instance instance2」で起動できます。
173	
	
つづいて、Web アプリケーションを動作させているブラウザに戻り、ブラウザを再読み込みしてく
ださい。最初にアクセスした時と、セッション ID(ここでは 18558c3b0f1c264172bcbde7689b)が同
じことを確認し、先ほど入力した値「20」が表示されていることを確認してください。
図 137:ブラウザの再読み込み
以上で、インスタンスが停止した状況でも、もう片方のインスタンスでサービスが継続して提供さ
れていることを確認できました。セッション・レプリケーションの動作確認は終了です。
174	
	
演習 2 : 東日本リージョンの環境構築
東リージョンの環境構築は、西日本と同様の手順で全く同じ構成で、ホスト名などを変更して構
築してください。
表 5:Payara クラスタ Ubuntu 仮想マシン設定一覧
管理サーバ ノード1 ノード2
OS Ubuntu Server 16.04
LTS
Ubuntu Server 16.04
LTS
Ubuntu Server 16.04
LTS
デプロイモデル リソースマネージャ リソースマネージャ リソースマネージャ
名前 YT-Payara-East-
Admin
YT-Payara- East -
Node1
YT-Payara- East -
Node2
ユーザ名 payara payara payara
認証の種類 パスワード パスワード パスワード
パスワード (12 文字以
上)
Payara123456 Payara123456 Payara123456
サブスクリプション 登録サブスクリプション 登録サブスクリプション 登録サブスクリプション
リソース グループ Payara-Cluster-RS Payara-Cluster-RS Payara-Cluster-RS
場所 西日本 西日本 西日本
サイズの選択 DS1_V2 Standard (任
意)
DS1_V2 Standard (任
意)
DS1_V2 Standard (任
意)
ストレージ アカウント デフォルト値 (設定不
要)
デフォルト値 (設定不
要)
デフォルト値 (設定不
要)
Virtual Network Payara-East Payara-East Payara-East
サブネット default (10.2.0.0/24) default (10.2.0.0/24) default (10.2.0.0/24)
パブリック IP アドレス (新規)デフォルト値 (新規)デフォルト値 (新規)デフォルト値
ネットワーク セキュリテ
ィ グループ
Payara-East-Admin Payara-East-Node Payara-East-Node
拡張機能 拡張機能なし 拡張機能なし 拡張機能なし
診断 有効 有効 有効
診断ストレージアカウン
ト
デフォルト値 デフォルト値 デフォルト値
可用性セット なし (新規) Payara-East-
Node
(新規) Payara-East-
Node
(※ 仮想マシンごとに異なる設定が必要な箇所を赤文字で記述)
175	
	
演習 3 : Microsoft Azure TrafficManager の構成
タスク	1	: Traffic Manager の構築
(TBD)
176	
	
演習 4 : Payara Scale (Hazelcast Enterprise) の設定 (ライセン
ス必要)
Payara Scale のライセンスを Payara から購入・入手していただいた方には別途、Payara から設定方
法に関する情報を得られると思いますが、手順概要と実際に私が構築した際の設定例を下記にご
紹介します。
1. Payara からライセンスを入手
2. Payara から Hazelcast Enterprise 用のバイナリを入手します。
3. Hazelcast Enterprise 用のバイナリの置き換え
4. Hazelcast の設定ファイルの修正
2. で Payara から入手するファイルは、hazelcast-enterprise-all-3.6.2.jar というファイルです。これ
を、置き換える必要があります。
また、WAN レプリケーションを実現するために、hazelcast-config.xml の設定ファイルを修正しま
す。
Payara Scale 用 hazelcast-config.xml の記載例(要ライセンス)
<?xml version="1.0" encoding="UTF-8"?>
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-
3.6.xsd"
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<license-key>
HazelcastEnterpriseHD#*******#**************************************************
**********
</license-key>
<group>
<name>east</name>
<password>east-pass</password>
</group>
<properties>
<property name="hazelcast.logging.type">jdk</property>
<property name="hazelcast.socket.client.bind.any">false</property>
177	
	
</properties>
<network>
<port auto-increment="false">5701</port>
<join>
<multicast enabled="false">
<multicast-group>228.9.217.207</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="true" >
<member>10.4.0.5-6</member>
</tcp-ip>
</join>
<interfaces enabled="true">
<interface>10.4.0.*</interface>
</interfaces>
</network>
<wan-replication name="my-wan-cluster">
<target-cluster group-name="west" group-password="west-pass">
<response-timeout-millis>70000</response-timeout-millis>
<queue-full-behavior>DISCARD_AFTER_MUTATION</queue-full-behavior>
<replication-impl>com.hazelcast.enterprise.wan.replication.
WanNoDelayReplication</replication-impl>
<end-points>
<address>payara-west-
machine2.japanwest.cloudapp.azure.com:5701</address>
<address>payara-west-
machine3.japanwest.cloudapp.azure.com:5701</address>
</end-points>
</target-cluster>
</wan-replication>
<map name="/AzureAD-Login-WebApp-OAuth">
<wan-replication-ref name="my-wan-cluster">
<merge-policy>com.hazelcast.map.merge.PassThroughMergePolicy</merge-
policy>
</wan-replication-ref>
</map>
178	
	
</hazelcast>
リソース
Ø Azure 情報サイト
Ø Yoshio Terada のブログ
http://yoshio3.com
Ø GlassFish ドメインとドメイン管理サーバ
http://tinyurl.com/glassfish-domain-admin

Payara Scale (Hazelcast Enterprise) on Azure