AWS RedHat7.6(HVM)にTomcat9を入れてみた時の備忘録

前回のOracle JDKのインストールに引き続き、
AWS環境にアプリケーション・Webサーバーを作成する際に設定したことのメモです。

環境は以下の通りで Amazon Linux ではなく RedHat を使用しました。

・EC2 RedHat7.6
・T2.medium

gccのインストール

Tomcatをデーモン起動で使用する場合、gccが必要となるのでインストールします。

# gccパッケージのインストール
$ sudo yum install -y gcc

Tomcatモジュールの取得 & 解凍

RHELリポジトリの最新は Tomcat7 と古いため、wget でモジュールを取得します。

# 最新版をwgetで取得
$ wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz

#  解凍して/opt配下に移動
$ sudo tar zxvf apache-tomcat-9.0.13.tar.gz -C /opt/

Tomcatをデーモンとして使用する際に必要となるjsvcのコンパイル

デーモンで自動起動を設定するため、jsvc を make でコンパイルします。

# ディレクトリに移動してコンパイル実行
$ cd /opt/apache-tomcat-9.0.13
$ sudo tar zxvf ./bin/commons-daemon-native.tar.gz

$ cd commons-daemon-1.1.0-native-src/unix/
$ ./configure --with-java=/usr/java/latest

$ make

$ sudo cp -piv jsvc /opt/apache-tomcat-9.0.13/bin/
$ cd /opt/apache-tomcat-9.0.13/

# 確認
$ sudo ls -l ./bin/jsvc
-rwxrwxr-x. 1 ec2-user ec2-user 174056 Dec 11 12:08 ./bin/jsvc

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

Tomcat を実行するためのユーザーとグループを作成します。

$ sudo groupadd -g 10003 tomcat
$ sudo useradd -u 10003 -g 10003 tomcat

Tomcat関連のファイルの所有者変更

Tomcatユーザーを各ファイルの所有者にします。

$ cd /opt
$ sudo chown -R tomcat:tomcat apache-tomcat-9.0.13

# 所有者がTomcatになっていることを確認
$ ls -l /opt/apache-tomcat-9.0.13/

サービスユニットファイルとSystemd用設定ファイルの作成

このファイルはデーモンの起動・停止に使用するファイル(何故か存在しないので自分で作成しました。)

$ sudo vi /etc/systemd/system/tomcat.service
#/etc/systemd/system/tomcat.serviceの中身

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/opt/apache-tomcat-9.0.13/bin/daemon.sh start
ExecStop=/opt/apache-tomcat-9.0.13/bin/daemon.sh stop
SuccessExitStatus=143
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target
$ sudo vi /etc/sysconfig/tomcat
# /etc/sysconfig/tomcat

# Where your java installation lives
JAVA_HOME="/usr/java/latest"

# Where your tomcat installation lives
CATALINA_BASE="/opt/apache-tomcat-9.0.13"
CATALINA_HOME="/opt/apache-tomcat-9.0.13"
#JASPER_HOME="/usr/share/tomcat"
#CATALINA_TMPDIR="/var/cache/tomcat/temp"

# You can pass some parameters to java here if you wish to
#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"

# Use JAVA_OPTS to set java.library.path for libtcnative.so
#JAVA_OPTS="-Djava.library.path=/usr/lib"

# What user should run tomcat
TOMCAT_USER="tomcat"

# You can change your tomcat locale here
#LANG="en_US"

# Run tomcat under the Java Security Manager
#SECURITY_MANAGER="false"

# Time to wait in seconds, before killing process
#SHUTDOWN_WAIT="30"

# Whether to annoy the user with "attempting to shut down" messages or not
#SHUTDOWN_VERBOSE="false"

# Connector port is 8080 for this tomcat instance
#CONNECTOR_PORT="8080"

# If you wish to further customize your tomcat environment,
# put your own definitions here
# (i.e. LD_LIBRARY_PATH for some jdbc drivers)

Tomcat 起動確認

$ sudo systemctl start tomcat

# ステータスの確認 running なら成功
$ sudo systemctl status tomcat

$ sudo systemctl stop tomcat 

# ステータスの確認 dead なら成功
$ sudo systemctl status tomcat

自動起動の設定

$ sudo systemctl enable tomcat

# Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; と表示されることを確認
$ sudo systemctl status tomcat

以上で RedHat7.6 への Tomcat9 のセットアップが完了しました。
JDK のセットアップと比べて手順が多く面倒でした。(-。-;