【第2回】AWS EC2にNginx+Tomcat+CorrettoでJava11環境を作る


この連載ではAWSのEC2を使ってJavaのWebアプリ環境を数回に渡って作成していきます。

作成する環境は以下の通りです。
EC2 : Amazon Linux 2
nginx : 1.12.2
Tomcat : 9.0.24
jdk : 11.0.4 (Corretto11)

前回はAmazon Correttoを使ってJavaの環境のみ用意しました。
今回はEC2にNginxとTomcatをインストールして、Webサーバ環境(サーブレット環境)を構築します。


■1. Nginxのインストール

Nginxのインストールは以下のコマンドで行います。

sudo amazon-linux-extras install nginx1.12

nginxのパッケージバージョンに関しては以下のコマンドで利用可能なバージョンを選択してください。

amazon-linux-extras | grep nginx

インストールができたら自動起動の設定をしておきましょう。

sudo systemctl enable nginx

起動するコマンドは以下です。

sudo systemctl start nginx

起動したらブラウザでEC2のパブリックDNSにアクセスして、以下の表示になっていればOKです。

■2. Tomcat9のインストール

執筆時点で最新のTomcat9をインストールします。
この時点ではyumがtomcat7.0、amazon-linux-extrasもtomcat8.5だったため、公式サイトから最新パッケージをダウンロードして手動でインストールします。

homeディレクトリにファイルをダウンロードして解凍しましょう。

cd ~
wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-9/v9.0.24/bin/apache-tomcat-9.0.24.tar.gz
tar -xzvf ~/apache-tomcat-9.0.24.tar.gz

続けて解凍してできたフォルダを「/opt」に移動させます。
ついでにシンボリックリンク「/opt/tomcat」を作成しておきます。

sudo mv ~/apache-tomcat-9.0.24 /opt
sudo ln -s /opt/apache-tomcat-9.0.24 /opt/tomcat

次にTomcat用のユーザー「tomcat」を作成し、フォルダのオーナーを設定します。

sudo useradd -s /sbin/nologin tomcat
sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.24

インストールしたTomcatをサービスに登録しましょう。
以下のコマンドで、新規に「tomcat.service」を作成してください。

sudo vi /etc/systemd/system/tomcat.service

中身には以下を貼り付けてください。

[Unit]
Description=Apache Tomcat 9
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat-9.0.24/tomcat.pid
RemainAfterExit=yes

ExecStart=/opt/apache-tomcat-9.0.24/bin/startup.sh
ExecStop=/opt/apache-tomcat-9.0.24/bin/shutdown.sh
ExecReStart=/opt/apache-tomcat-9.0.24/bin/shutdown.sh;/opt/apache-tomcat-9.0.24/bin/startup.sh

[Install]
WantedBy=multi-user.target

実行権限を与えれば完成です。

sudo chmod 755 /etc/systemd/system/tomcat.service

上手くできていれば、以下のコマンドで起動時の登録や実行ができると思います。

sudo systemctl enable tomcat
sudo systemctl start tomcat

起動したらブラウザで「(EC2のパブリックDNS):8080」にアクセスして、以下の表示になっていればOKです。

■3. Nginxの設定 (リバースプロキシ)

Nginxにリバースプロキシの設定をして、Tomcatへのリダイレクト設定を行います。

以下のコマンドで、「nginx.conf」を開きましょう。

sudo vi /etc/nginx/nginx.conf

開いたら以下の一行を画像の位置に追加して保存しましょう。

proxy_pass http://127:0.0.1:8080/;

以下のコマンドでNginxを再起動しましょう。

sudo systemctl restart nginx

Nginxインストール後に確認したEC2のパブリックDNSにブラウザでアクセスすると、
ポート8080でアクセスした時と同様にTomcatのページが表示されるはずです。
(されない場合はブラウザのキャッシュをクリアして試してください。)

これでNginxとTomcatの連携は完成となります。
なお、今回は最低限の設定しかしていないので、リバースプロキシについてもう少し詳しく知りたい方は以下の記事を参考にしてください。
(参考記事) Nginx応用編②リバースプロキシとして動かす(前編)


これでJavaサーブレットを実行する環境まで整いました。
次回は簡単なサーブレットプログラムを作成して、実行確認のための準備を行いたいと思います!

  • このエントリーをはてなブックマークに追加

PAGE TOP