【第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サーブレットを実行する環境まで整いました。
次回は簡単なサーブレットプログラムを作成して、実行確認のための準備を行いたいと思います!