仮想サーバー構築

【仮想サーバ構築】サーブレットコンテナ(JBOSS)の導入【APサーバー】

2020年3月27日

商用プロジェクトにおいて、3階層システムを扱わない環境はまずありません。そもそも3階層システムとは、「プレゼンテーション層」「アプリケーション層」「データ層」から構成されるのが一般的です。プレゼンテーション層へはにhttpd(Apacje)サービス等が導入されことが一般的です。

しかしながら、昨今の「プレゼンテーション層」の利用用途は、利用者からのリクエストを「アプリケーション層」へ振り分けるプロキシとしての役割を提供することが一般的になりました。実際のコンテンツは「プレゼンテーション層」側の「サーバーサイドアプリケーション」によりサービス提供を行います。

この記事では「プレゼンテーション層」で「稼働するサーブレットコンテナ(jBoss-eap-7.2.x)」のインストールについて解説します。

APサーバーとは?

「AP(アプリケーション)」サーバーとは、「Java」や「Ruby」「PHP」等のアプリケーション機能に特化したミドルウェアモジュールを導入したサーバーを指します。Webサーバからのリクエストを元に、「Java」や「Ruby」「PHP」等の導入済みミドルウェアの機能を使って結果をWebサーバーへ返します。

サーブレットコンテナ とは?

サーブレットコンテナとは、HTMLなどのWebページを動的に生成するJavaを動作させるためのソフトウェアを指します。圧倒的な需要から、現在、開発言語の主流となっている「Java」ですが、動作されるためには、サーブレットコンテナが必要になります。

サーブレットコンテナは、Webブラウザからのリクエストに対して1プロセスを割り当てる「CGI」とは異なり、Webブラウザからのリクエストに対してプロセス内の1スレッドが対応する「マルチスレッド」が特徴です。これにより、効率の良いメモリ管理が行えます。

現在までに「Tomcat」「play」「Glassfish」「jetty」「WebSphere」「webLogic」「jboss」と様々なサーブレットコンテナが開発されてきました。中でも「jboss」はもともと、「Tomcat」を魔改造したコンテナであり、今後の商用プロジェクトにおいて「jboss」は、事実上標準「コンテナ」として認識されていくものと思われます。

本記事では、サーブレットコンテナとして「jboss-eap」を採用することとします。

JBossとは

JBoss Application Serverとは、JBoss.orgを中心にオープンソースで開発されているJava EEのAPサーバです。 JBossは、オープンソースで開発されている有力なJava EEアプリケーションサーバの一つであり、「All in One」を用いることでフルスタックな環境を実現できることで人気を博しています。

RedHat社では、JBoss Enterprise Middlewareの中核となるコンポーネントとなっています。

想定する構築環境

JBoss Application Serverの導入を行う前提として、下記の環境を想定しています。本記事から少しずつ本格的な論理図風味にしていきます。

VMware Workstation Player (NAT) の概略図

Webサーバー (wb01)-Apサーバー (ap01,ap02) 関連図

フロントのapacheで受けたトラフィックをバックのjboss-eapの負荷に応じて負荷分散させ、片系が停止した際にはセッション情報が引き継がれるようにします。

apacheが単一障害点になるので実際の構築ではapacheも2重化する必要があるかと思います。

本記事でのjboss-eap構成は「ドメイン構成」として作成します。
 ap01:マスター ap02:スレイブとして構築します。

APサーバーの導入

APサーバーを導入するにあたって、下記の設定が住んでいるものとして話を進めます。

  • firewalldサービスの停止
  • yumリポジトリの設定
  • 「/etc/hosts」の設定

また、下記の流れに沿って「JBOSS-EAP」モジュールを導入していきます。

APサーバー導入の流れ

  • 「jboss」ユーザ、グループ作成(マスタ、スレイブ)
  • 「openjdk」導入(マスタ、スレイブ)
  • 「JBoss-eap 7.2.0」導入(マスタ、スレイブ)

ユーザーとグループの作成

「jboss-eap」をインストールする前に、jboss操作用ユーザを作成していきます。

下記の手順でユーザーを作成します。

# groupadd -g 1100 jboss
# useradd -u 1100 -g jboss -M -d /opt/jboss -s /bin/bash jboss

「jboss」ユーザーのuid,gidは任意のidを設定してください。

JDKモジュールの導入確認

jbossを実行するためには、「java(jdk)」が必要になります。

本記事では、「RHEL7.5」のISOメディアのバンドル版「java-1.8.0-openjdk」を採用します。

次のコマンドを入力して、jdkの導入有無を確認します。
全回記事のKickStartで導入した場合は「java-1.8.0-openjdk」モジュールはインストールされています。

# yum info java-1.8.0-openjdk

「リポジトリ」が「installed」なので、既に導入されています。

JBOSS-EAP7.2.0の導入

JBOSS-EAP導入の流れ

  • jboss-eap7.2.0のZIPファイルのダウンロード
  • 「 jboss-eap-7.2.0-installer.jar 」の所有権を「jboss」へ変更する。
  • jboss-eap7.2.0のインストール(インストーラー版)
  • スレイブ側の接続ユーザ作成
  • スレイブ側の接続ユーザ(管理ユーザー)作成
  • jboss-eap7.2.0の起動

① JBOSS-EAP7.2.0のZIPファイルのダウンロード

下記の手順に従い「 JBoss EAP 」をダウンロードします。

  1. Red Hat カスタマーポータル (https://access.redhat.com) にログイン。
  2. ダウンロードをクリック。
  3. 製品のダウンロードリストの Red Hat JBoss Enterprise Application Platform をクリック。
  4. Version ドロップダウンメニューから JBoss EAP の正しいバージョンを選択。
  5. リストで Red Hat JBoss Enterprise Application Platform 7.2.0 を見つけ、Download リンクをクリック。

② 所有権を「jboss」変更する。

「 jboss-eap-7.2.0-installer.jar 」ファイルを「/opt/jboss」配下へ格納します。

「 jboss-eap-7.2.0-installer.jar 」 を格納した後、下記のコマンドを実行して「/opt/jboss」配下の所有権を「jboss」へ変更します。

# chown -R jboss:jboss /opt/jboss

「/opt/jboss」配下の所有権を「jboss」へ変更!

コマンドを実行した後、「/opt/jboss」配下がすべて「jboss」へ変更されている。

③ JBOSS-EAP7.2.0のインストール(インストーラー版)

JBoss EAP JAR インストーラーは Red Hat カスタマーポータルから入手できます。

「jboss-eap-7.2.0-installer.jar」アーカイブを使用して、グラフィカルまたはテキストベースのインストーラーを実行できます。

サポートされるすべてのプラットフォームでは、インストーラーを用いて JBoss EAP をインストールする方法が推奨されます。

JBossインストーラーの実行手順

  1. ターミナルを開き、ダウンロードした JBoss EAP インストーラーの JAR ファイルが含まれるディレクトリーに移動します。
  2. 以下のコマンドを実行して、グラフィカルインストーラーを起動します。
    「 # java -jar jboss-eap-7.2.0-installer.jar 」
  3. 以下の手順を実行します。下記参照

尚、本記事では「jboss」の所有ユーザーは[jboss」としている為、インストーラーは「jboss」ユーザーにて実行します。
「ap01」「ap02」で実行します。

パスワードは任意の文字を入力してください。

インストールが正常に終了すれば「/opt/jboss/」配下へ、各種リソースが展開されます。

「/opt/jboss」配下へ「EAP-7.2.0」のディレクトリが作成され、「jboss-eap7.2.0」が正しくインストールされている。

④ スレイブ側の接続ユーザ(ap02)作成

「jboss」ユーザーで「$JBOSS_HOME/bin/add-user.sh」を起動してユーザーを追加する。

ドメイン環境で複数台サーバーを構築する場合は、ドメインコントローラとなるサーバーにスレーブサーバー分のユーザー名とパスワードを設定します。(ユーザー名をスレーブのホスト名として登録します。 )
スレイブ側のユーザ作成は「マスターサーバー(ap01)」側で登録を行います。

管理CLIは「/opt/jboss/EAP-7.2.0/bin」配下の「 add-user.sh 」で起動します。

13行目:スレイブとして、「ap02」を登録しています。
パスワードは任意の文字を入力してください。

⑤ 「JBoss」の管理ユーザー作成

管理CLIに接続するためにmgmtusr(管理ユーザー)を追加します。
本作業は「ap01」側で登録を行います。なお、この管理ユーザーは、ブラウザからの設定画面ログイン時に必要になります。

「jboss」ユーザーで「$JBOSS_HOME/bin/add-user.sh」を起動してユーザーを追加します。

パスワードは任意の文字を入力してください。

⑥ jboss-eap7.2.0の起動

次のコマンドを実行して「jboss-eap-7.2.0」を起動します。

1行目:jbossが起動していないことを確認
2行目:jbossユーザーへスイッチ
3行目:「 /opt/jboss/EAP-7.2.0/bin 」へ移動
4行目:jbossの実行 起動確認の為「standalone.sh」を実行しています。

jboss-eap-7.2.0が起動したところ

以上で「 jboss-eap 」のインストールは完了です。

よく読まれている記事

1

目次1 Shellとは?1.1 代表的なシェルの種類2 シェルスクリプトの違いとは? Shellとは? Shellとは、人間の理解できる言葉を機会へ伝えるプログラムです。 Linux環境でコマンドプロ ...

2

Linuxは主にサーバー用として利用されるOSです。大規模な基幹システムの開発者、ロボットや家電開発等の組み込み系エンジニア、ネットワーク機器やデータベースに携わるインフラエンジニアは触れることが多い ...

3

プログラミング言語を習得しようと思った時、必ずと言っていいほど候補として挙げられるのが「Java」というプログラミング言語です。 「Java」は、現在日本で最も使われている言語であり、非常に人気のある ...

4

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-仮想サーバー構築

Copyright© Beエンジニア , 2020 All Rights Reserved.