Segmentation Fault

いちおう技術系ブログ.信用しないでね.

IDCフロンティアのクラウドのマルチユーザ機能を使ってWebアプリの演習環境をつくってみた(後半)

前回に続く仮想マシンの設定,GlassFishやアプリケーションが使うMongoDBやNetbeansのプロジェクトとの連携について説明します.

 

環境構築は実際にやると楽しいものです.そんな楽しいことを教える側が奪ってはいけないです.また学生が自分で実行環境を構築することはとても意味があると思うので,今回の内容は,IDCFクラウドにマルチユーザとして登録された学生自身が行う内容になります.

4. 仮想マシンの設定

 (1) 登録したアカウント名とパスワードでIDCFクラウドにログインします

 (2) めちゃ楽ガイドのステップ2を参考にLinux仮想マシンを構築します

  ・西日本リージョン→コンピューティング→仮想マシン生成

  ・light.S1,Ubuntu Server 14.04 LTS 64bit

       ・SSH Key の設定を行うこと

  ・詳細情報のマシン名にわかりやすい名前をつけておく

  ・詳細情報のグループ名に自分のカウント名をつけておく

(3) めちゃ楽ガイドには書いていないことですが,グローバルIPアドレスの追加を行います.

 

めちゃ楽ガイドは基本的な利用の仕方について説明しています.IDCFクラウドのユーザには最初ひとつだけグローバルIPアドレスが割り当てられています.これがあるので一番小さいインスタンスを立ち上げるとインスタンス毎に月500円で済むのですが,新しいインスタンスをつくり,ひとつグローバルIPアドレスを割り付けるとグローバルIPアドレスを追加する必要があります(これにも月500円).

ポートフォワードの機能をうまく使えば,ひとつのグローバルIPアドレスを使い回すこともできるのですが,今回は月1000円コース(VMインスタンスに500円+グローバルIPアドレスに500円)でいくことにします.

 

   (3)-1. サイドメニューのIPアドレスIPアドレス取得

   (3)-2. IPアドレスにアカウント名,ゾーンとネットワークに既存のものを選択

   (3)-3. IPアドレスを取得「はい」と答える

f:id:hkoide:20160611223811p:plain

(4) ネットワーク設定

グローバルIPアドレスを取得しておけば,あとはめちゃ楽ガイドの7-8ページに従ってネットワークの設定が可能です.まずはファイアウォールの設定でHTTPとSSHを解放します.IPアドレス→作成したIPアドレス名→ファイアウォールで設定します.f:id:hkoide:20160611224555p:plain

f:id:hkoide:20160611224159p:plain

つぎにポートフォワードの設定も行います.

f:id:hkoide:20160611224625p:plain

この段階で手元のPCのsshの鍵の設定が問題なければ,クラウド上のサーバにsshでログインできるはずです.ubuntu なら端末から「ssh -l root グローバルIPアドレス」でログインできます.

f:id:hkoide:20160611225010p:plain

 

(5)MongoDB のインストール

クラウドコースで作成するWebアプリケーションは,データベースにMongoDBを使っているので,本家の情報をもとにインストールを行います.具体的にはsshでログインした端末で Install MongoDB Community Edition の項目の背景が灰色のコマンドを順にコピペして実行していけば良いです.設定ファイルやデータベースは /var/lib/mongodb に置かれるようになります.

    # sudo service mongod start    (mongod の開始)

 # sudo service mongod stop       (mongod の停止)

    # sudo service mongod restart   (mongod の再起動)

(6) JDK8 のインストール

sshでログインした端末から以下のコマンドでインストールします.

    # sudo apt-get install software-properties-common

    # sudo add-apt-repository ppa:webupd8team/java

    # sudo apt-get update

    # sudo apt-get install oracle-java8-installer

 

ちゃんとインストールできたか

   # javac -version

で確認します.

(7) GlassFish のインストール

このブログを参考にしました. ssh でログインした端末から以下のコマンドでインストールします.

 ダウンロード

展開

  # sudo unzip glassfish-4.1.1.zip

  # sudo rm glassfish-4.1.1.zip

glassfishユーザ作成

  # sudo useradd -s /usr/sbin/nologin -d /opt/glassfish4 glassfish

  # sudo chown -R glassfish: /opt/glassfish4

サーバの起動 

  # cd /opt/glassfish4/
  # sudo bin/asadmin start-domain

セキュア管理の有効化

  # sudo bin/asadmin change-admin-password

  Enter admin user name [default: admin]> (そのままEnter)

  Enter the admin password> (そのままEnter)
  Enter the new admin password> (新しいパスワードを入力)

  Enter the new admin password again> (もう一度)

  Command change-admin-password executed successfully.

  # sudo 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 bin/asadmin restart-domain domain1 (サーバを再起動)

 

(8) ネットワークの追加設定

Webアプリケーション用のポート8080とGlassFishの管理コンソール用のポート4848が外部からつなげられるようにネットワークの追加設定を行います. 

ファイアウォールに8080と4848を追加します.

f:id:hkoide:20160611231327p:plain

つぎにポートフォワードの設定を追加します.

f:id:hkoide:20160611231501p:plain

これで手元のPCのWebブラウザからGlassFish管理コンソールに接続できます.ユーザ名にadmin,パスワードには設定したものを指定します.インスタンスが一番小さいものなので,起動やログインに少し時間がかかりますが,ちゃんと立ち上がってくると思います.

f:id:hkoide:20160611232355p:plain

(9) Netbeans の設定

つぎにNetbeanからアプリケーションをクラウド上のサーバに直接デブロイできるように設定します.まずServicesからサーバの追加を選択します.

f:id:hkoide:20160611232955p:plain

GlassFish Server  を選択.Name にサーバの名前として分かりやすいものを付けておき Next

f:id:hkoide:20160611232855p:plain

Remote Domain を選択して Next

f:id:hkoide:20160611233228p:plain

 

Domainにdomain1,Host にサーバのアドレス,User Name に admin,Password に設定したパスワードを指定し Finish.

f:id:hkoide:20160611233601p:plain

Server が接続されていることを確認します.アプリケーション→プロパティ→Run→サーバの設定を変更します.

f:id:hkoide:20160611233722p:plain

最後に実行して確認します!

f:id:hkoide:20160611233912p:plain

 

以上で自分のローカルでの開発と同様にして,単にデプロイ先のサーバを切り替えるだけで,クラウド上のサーバにもWebアプリケーションをデプロイして実行できるようになりました.