Amazon EC2にPayara Serverをインストールする
JavaEEでアプリケーションを作っていきたいため、先ほど立てたAmazon EC2にPayara Serverをインストールした。
Amazon EC2の設定
管理コンソールとWebアプリケーションにアクセスするため、セキュリティグループの設定で
インバウンドにTCPの4848と8080の設定を行います。
正式な運用の際は、ポート変更など見直した方がよいですが今はデフォルト設定で進めていきます。
Payara Serverのインストール
Payara Serverのモジュールをダウンロードする
クライアントPCでPayaraのサイトにアクセスしモジュールをダウンロードします。
http://www.payara.fish/downloads
2016/8/20時点で最新の「Payara Server 163 Full」をダウンロードします。
SFTPでサーバに転送する
Macを使用しているため、FileZillaを使って転送します。
Windowsであれば、WinSCPが便利です。
SFTPでサーバに転送する
Macを使用しているため、FileZillaを使って転送します。
Windowsであれば、WinSCPが便利です。
モジュールを展開する
unzip で展開します。
$ unzip payara-4.1.1.163.zip
Archive: payara-4.1.1.163.zip
creating: payara41/
creating: payara41/bin/
inflating: payara41/bin/updatetool
inflating: payara41/bin/updatetool.bat
$ ls
payara-4.1.1.163.zip payara41
/usr/lib/に移動し、/usr/lib/payara/にシンボリックリンクを作成します。
$ sudo mv payara41/ /usr/lib/
$ sudo ln -s /usr/lib/payara41/ /usr/lib/payara
payaraユーザを作成する
1$ sudo useradd -m -d /home/payara payara
payaraのオーナーを変更します。
$ sudo chown -R payara:payara /usr/lib/payara/
$ ls -la /usr/lib/
合計 84
dr-xr-xr-x 21 root root 4096 8月 20 08:41 .
drwxr-xr-x 13 root root 4096 6月 21 20:09 ..
drwxr-xr-x 4 root root 4096 6月 21 20:09 dracut
dr-xr-xr-x 2 root root 4096 1月 6 2012 games
drwxr-xr-x 2 root root 4096 9月 9 2014 java
drwxr-xr-x 2 root root 4096 9月 9 2014 java-1.5.0
drwxr-xr-x 2 root root 4096 9月 9 2014 java-1.6.0
drwxr-xr-x 2 root root 4096 9月 9 2014 java-1.7.0
drwxr-xr-x 2 root root 4096 9月 9 2014 java-1.8.0
drwxr-xr-x 2 root root 4096 9月 9 2014 java-ext
drwxr-xr-x 4 root root 4096 8月 20 06:37 jvm
drwxr-xr-x 2 root root 4096 9月 9 2014 jvm-commmon
drwxr-xr-x 4 root root 4096 8月 20 06:37 jvm-exports
drwxr-xr-x 4 root root 4096 8月 20 05:45 jvm-private
dr-xr-xr-x 2 root root 4096 6月 21 20:09 locale
drwxr-xr-x 2 root root 4096 9月 4 2015 modprobe.d
lrwxrwxrwx 1 root root 18 8月 20 08:41 payara -> /usr/lib/payara41/
drwxr-xr-x 6 payara payara 4096 8月 15 10:54 payara41
drwxr-xr-x 4 root root 4096 6月 21 20:10 python2.7
drwxr-xr-x 5 root root 4096 6月 21 20:10 rpm
lrwxrwxrwx 1 root root 30 6月 21 20:10 sendmail -> /etc/alternatives/mta-sendmail
lrwxrwxrwx 1 root root 25 6月 21 20:10 sendmail.sendmail -> ../sbin/sendmail.sendmail
drwxr-xr-x 2 root root 4096 6月 21 20:10 tmpfiles.d
drwxr-xr-x 2 root root 4096 8月 20 05:09 yum-plugins
管理コンソールを起動する
asadminコマンドのstart-domainで起動します。
$ sudo -u payara /usr/lib/payara/bin/asadmin start-domain
Waiting for domain1 to start .......
Successfully started the domain : domain1
domain Location: /usr/lib/payara41/glassfish/domains/domain1
Log File: /usr/lib/payara41/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.
起動が成功したので、クライアントのブラウザでアクセスしてみます。
http://EC2のアドレス:4848/
Configration Error 「Secure Admin must be enabled to access the DAS remotely」のエラーが出てしまいました。
リモート接続するために、パスワードの設定とSSL設定をする
デフォルトは設定されていない管理者ユーザ(admin)のパスワードを設定します。
$ sudo -u payara /usr/lib/payara/bin/asadmin change-admin-password
Enter admin user name [default: admin]>admin
Enter the admin password> (何もいれずにEnter)
Enter the new admin password> (新しいパスワード)
Enter the new admin password again> (新しいパスワードをもう1回)
Command change-admin-password executed successfully.
SSL設定するためにenable-secure-adminを設定します。
$ sudo -u payara /usr/lib/payara/bin/asadmin enable-secure-admin
Enter admin user name> admin
Enter admin password for user "admin">
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.
設定を反映するため、管理コンソールを再起動します。
$ sudo -u payara /usr/lib/payara/bin/asadmin restart-domain
Successfully restarted the domain
Command restart-domain executed successfully.
再度、管理コンソールにブラウザでアクセスすると、httpsにリダイレクトされます。
証明書のエラーが出ますが、無視すると先ほどのエラーメッセージがないログイン画面されます。
では、admin/ 先ほど設定したパスワードを入力すると、ログインできコンソールが表示されます。
サンプルアプリケーションのデプロイ
最後にサンプルアプリケーションをデプロイしてみます。
以下のBlogを参考にしました。
http://blog.payara.fish/how-to-deploy-an-application-on-payara-server-or-glassfish
サンプルアプリケーションをダウンロードする
$ wget https://glassfish.dev.java.net/downloads/quickstart/hello.war
--2016-08-20 09:33:59-- https://glassfish.dev.java.net/downloads/quickstart/hello.war
glassfish.dev.java.net (glassfish.dev.java.net) をDNSに問いあわせています... 137.254.56.65
glassfish.dev.java.net (glassfish.dev.java.net)|137.254.56.65|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://glassfish.java.net/downloads/quickstart/hello.war [続く]
--2016-08-20 09:34:00-- https://glassfish.java.net/downloads/quickstart/hello.war
glassfish.java.net (glassfish.java.net) をDNSに問いあわせています... 137.254.56.48
glassfish.java.net (glassfish.java.net)|137.254.56.48|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 4102 (4.0K) [text/plain]
`hello.war' に保存中
hello.war 100%[===================>] 4.01K --.-KB/s in 0s
2016-08-20 09:34:00 (48.8 MB/s) - `hello.war' へ保存完了 [4102/4102]
payaraユーザのホームディレクトリに移動します。
$ sudo mv hello.war /home/payara/
$ sudo ls -la /home/payara/
合計 36
drwx------ 4 payara payara 4096 8月 20 09:39 .
drwxr-xr-x 4 root root 4096 8月 20 08:43 ..
-rw-r--r-- 1 payara payara 18 2月 19 20:05 .bash_logout
-rw-r--r-- 1 payara payara 193 2月 19 20:05 .bash_profile
-rw-r--r-- 1 payara payara 124 2月 19 20:05 .bashrc
drwxr-xr-x 3 payara payara 4096 8月 20 09:18 .gfclient
drwxr-xr-x 3 payara payara 4096 8月 20 09:14 .java
-rw-rw-r-- 1 ec2-user ec2-user 4102 11月 5 2005 hello.war
デプロイします
$ sudo -u payara /usr/lib/payara/bin/asadmin deploy /home/payara/hello.war
Enter admin user name> admin
Enter admin password for user "admin">
Application deployed with name hello.
Command deploy executed successfully.
成功したので、アプリケーションの一覧を表示します。
$ sudo -u payara /usr/lib/payara/bin/asadmin list-applications
Enter admin user name> admin
Enter admin password for user "admin">
hello <web>
Command list-applications executed successfully.
ブラウザで確認します。
http://EC2のアドレス:8080/hello/
無事、サンプルアプリケーションが動作しました。
簡単ですが、動かすところまでできました。