Java Webは、Javaプログラミング言語とさまざまなテクノロジーおよびフレームワークを統合して、動的webアプリケーションの開発を容易にするテクノロジースタックです。 開発者は、Java Webを使用して、プラットフォーム間で展開できる複雑で高性能なwebアプリケーションを開発できます。 Apache Tomcatは、Java webアプリケーションのデプロイと実行に使用される最も一般的なwebサーバー環境です。 このトピックでは、ECS (Elastic Compute Service) インスタンスにJava web環境をデプロイする方法について説明します。
クイック展開
Terraform Explorerに移動し、[コード] タブでTerraformコードを表示および実行して、Apache Tomcat Java web環境をECSインスタンスに自動的にデプロイできます。
前提条件
ECSインスタンスにJava web環境をデプロイする前に、インスタンスが次の要件を満たしていることを確認してください。
インスタンスにJava環境がデプロイされています。 詳細については、「Java環境のデプロイ」をご参照ください。
ECSインスタンスには、静的パブリックIPアドレス (システム割り当てまたは自動割り当てパブリックIPアドレスとも呼ばれます) が割り当てられるか、elastic IPアドレス (EIP) に関連付けられます。 詳細については、「EIP」をご参照ください。
インスタンスがLinuxオペレーティングシステムを実行している場合は、ポート22と8080でのインバウンドトラフィックを許可するルールがインスタンスのセキュリティグループに追加されていることを確認してください。
インスタンスがWindowsオペレーティングシステムを実行している場合は、ポート3389と8080でのインバウンドトラフィックを許可するために、インスタンスのセキュリティグループにルールが追加されていることを確認してください。
セキュリティグループルールの追加方法については、「セキュリティグループルールの追加」をご参照ください。
インスタンスがLinuxオペレーティングシステムを実行している場合は、システムファイアウォールとセキュリティ強化Linux (SELinux) が無効になっていることを確認してください。 詳細については、「Linux ECSインスタンスのシステムファイアウォールの有効化または無効化」および「SELinuxの有効化または無効化」をご参照ください。
インスタンスがWindowsオペレーティングシステムを実行している場合は、システムファイアウォールが無効になっていることを確認してください。 詳細については、「Windowsインスタンスのシステムファイアウォールの管理」をご参照ください。
手順
インスタンスのオペレーティングシステムに基づいて、次の操作を実行します。
Linux
この例では、Apache Tomcat 9.0.91が使用されています。 別のバージョンのApache Tomcatをインストールするか、他のディレクトリを使用する場合は、次のコマンドのバージョンとディレクトリを実際のバージョンとディレクトリに置き換えます。
Linux インスタンスに接続します。 詳細については、「ECSリモート接続方法の概要」をご参照ください。
次のコマンドを実行して、Apache Tomcat 9.0.91インストールパッケージをダウンロードして解凍します。
説明Apache TomcatのダウンロードURLが変更される場合があります。 次のダウンロードURLが無効な場合は、公式Apache Tomcat Webサイトにアクセスして、最新のダウンロードURLを取得します。
別のバージョンのApache Tomcatをインストールする場合は、公式のApache Tomcat WebサイトにアクセスしてダウンロードURLを取得し、次のwgetコマンドのURLを取得したURLに置き換えます。
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.91/bin/apache-tomcat-9.0.91.tar.gz --no-check-certificate tar -zxvf apache-tomcat-9.0.91.tar.gz
次のコマンドを実行して、Apache Tomcatインストールファイルを /usr/local/tomcat /ディレクトリに移動します。
sudo mv apache-tomcat-9.0.91 /usr/local/tomcat/
(オプション) server.xmlファイルを設定します。
Apache Tomcatの設定を変更する場合は、次の手順を実行します。
次のコマンドを実行して、
/usr/local/tomcat/conf/server.xml
ファイルを開きます。vim /usr/local/tomcat/conf/server.xml
I
キーを押して挿入モードに入ります。 この例では、デフォルトのApache Tomcat設定が使用されています。 ビジネス要件に基づいてApache Tomcatの設定を変更することもできます。 例:デフォルトでは、Apache Tomcatはポート8080を使用します。 ポート番号を変更する場合は、
port
パラメーターの値を変更します。説明ポート番号を変更した後、インスタンスのセキュリティグループで新しいポートを許可する必要があります。 詳細については、「セキュリティグループルールの追加」をご参照ください。
デフォルトでは、Apache TomcatのWebサイトルートディレクトリは
webapps
です。 WARファイルやWEB-INFディレクトリを含むフォルダなどのwebアプリケーションをwebapps
ディレクトリに転送すると、Apache Tomcatは自動的にアプリケーションをデプロイします。 Apache TomcatのWebサイトのルートディレクトリを変更する場合は、appBase
パラメーターの値を変更します。
Escキーを押して
:wq
と入力し、enterキーを押してファイルを保存して閉じます。
(オプション) Java Virtual Machine (JVM) メモリパラメータを設定します。
ビジネス要件に基づいてApache TomcatのJVMメモリパラメータを設定し、Apache Tomcatのパフォーマンスと安定性を最適化する場合は、次の手順を実行します。
次のコマンドを実行して、
/usr/local/tomcat/bin/setenv.sh
ファイルを作成して開きます。vim /usr/local/tomcat/bin/setenv.sh
I
キーを押して挿入モードに入り、次のコンテンツを追加します。JAVA_OPTS
パラメーターを指定して、JVMメモリ情報とエンコード形式を設定します。 この例では、符号化形式はUTF-8である。説明次の内容を調整して、ビジネス要件に基づいてJVMメモリパラメータを設定できます。
JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms512m -Xmx512m -Dfile.encoding=UTF-8'
Esc
キーを押して挿入モードを終了します。:wq
と入力し、Enter
キーを押してファイルを保存して閉じます。次のコマンドを実行して、ファイルに対する実行権限を付与します。
sudo chmod +x /usr/local/tomcat/bin/setenv.sh
システム起動時にApache Tomcatが自動的に起動できるようにするスクリプトを設定します。
次のコマンドを実行して、スクリプトをダウンロードします。
wget https://help-static-aliyun-doc.aliyuncs.com/software/Tomcat-init.sh
次のコマンドを実行して、
Tomcat-init.sh
ファイルを移動し、名前を変更します。sudo mv Tomcat-init.sh /etc/init.d/tomcat
次のコマンドを実行して、
/etc/init.d/tomcat
ファイルに対する実行権限を付与します。chmod +x /etc/init.d/tomcat
Java Development Kit (JDK) がインストールされているパスを取得します。 次のコマンドを実行して、Javaバイナリファイルが格納されている実際のパスを取得します。 Javaバイナリファイルの親ディレクトリは、JDKがインストールされているパスです。
readlink -f $(which java)
説明たとえば、コマンドの実行後に
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-2.0.2.1.al8.x86_64/jre/bin/java
が返された場合、JDKは/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-2.0.2.1.al8.x86_64
パスにインストールされます。次のコマンドを実行して、スクリプトで
JAVA_HOME
パラメーターを指定します。重要JAVA_HOMEパラメーターで指定するJDKパスは、JDKがインストールされているパスである必要があります。 それ以外の場合、Apache Tomcatは起動できません。
sudo sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-2.0.2.1.al8.x86_64@' /etc/init.d/tomcat
次のコマンドを順番に実行して、Apache Tomcatがシステム起動時に自動的に起動し、Apache Tomcatを起動できるようにします。
sudo systemctl daemon-reload sudo systemctl start tomcat sudo systemctl enable tomcat
Apache Tomcatの起動後、
sudo systemctl status tomcat
コマンドを実行してApache Tomcatのステータスを確認できます。active (running)
が返されると、Apache Tomcatが起動されます。環境設定を確認します。
オンプレミスデバイスのwebブラウザーのアドレスバーに、
http:// <ECSインスタンスのパブリックIPアドレス>:8080
と入力します。 Apache Tomcatのウェルカムページが表示された場合、Java web環境は期待どおりに設定されます。説明http:// <ECSインスタンスのパブリックIPアドレス>:8080
を入力した後、Apache Tomcatのウェルカムページが表示されない場合は、インスタンスのセキュリティグループがポート8080でのインバウンドトラフィックを許可しているかどうかを確認します。Apache Tomcatポート番号を変更した場合は、8080を指定した新しいApache Tomcatポート番号に置き換え、インスタンスのセキュリティグループがポートでのインバウンドトラフィックを許可しているかどうかを確認します。
オンプレミスのプロジェクトをアップロードして環境をテストする場合は、Apache TomcatのWebサイトのルートディレクトリにWARパッケージをアップロードします。 この例では、
/usr/local/tomcat/webapps
ディレクトリが使用されています。 次に、webブラウザーのアドレスバーにhttp:// <ECSインスタンスのパブリックIPアドレス>:8080/<パッケージ名>
と入力して、プロジェクトにアクセスします。 詳細については、「LinuxインスタンスへのファイルのアップロードまたはLinuxインスタンスからのファイルのダウンロード」をご参照ください。
Windows
この例では、Apache Tomcat 9.0.97が使用されています。
Windowsインスタンスに接続します。 詳細については、「ECSリモート接続方法の概要」をご参照ください。
Apache Tomcatインストールパッケージをダウンロードします。
公式Apache Tomcat Webサイトにアクセスし、インストールするバージョンを選択してから、インストールパッケージをダウンロードします。
Apache Tomcatインストールパッケージを解凍します。
ダウンロードしたインストールパッケージを、Apache Tomcatをインストールするディレクトリに解凍します。 この例では、
C:\Program Files
ディレクトリが使用されています。Apache Tomcatをインストールするディレクトリを取得します。
インストールパッケージをディレクトリに解凍した後、ディレクトリに移動し、アドレスバーからApache Tomcatのインストールディレクトリを取得します。
環境変数設定を構成します。
[このPC] を右クリックし、[プロパティ] を選択します。
Aboutページで、一番下までスクロールし、[システムの詳細設定] をクリックします。
[環境変数] をクリックします。
[システム変数] セクションで、[新規作成] をクリックしてシステム変数を作成します。 そして、[OK] をクリックします。 変数名は
CATALINA_HOME
で、変数値はApache Tomcatのインストールディレクトリです。 この例では、C:\Program Files\apache-tomcat-9.0.97
ディレクトリが使用されています。[システム変数] セクションで、
[パス]
変数を選択し、[編集] をクリックします。[環境変数の編集] ダイアログボックスで、[新規] をクリックして
% CATALINA_HOME %\bin
パスを追加します。[OK] を2回クリックして、環境変数を保存します。
Apache Tomcatを起動します。
Apache Tomcatのインストールディレクトリにあるbinフォルダに移動します。
パスバーに
cmd
と入力し、Enterキーを押してコマンドプロンプトを開きます。startup.bat
コマンドを実行し、Apache Tomcatを起動します。 コマンドの実行後、デフォルトで新しいコマンドプロンプトウィンドウが開き、Apache Tomcatの起動ログが表示されます。 ウィンドウを閉じないでください。
Apache Tomcatをテストします。
オンプレミスデバイスのwebブラウザーのアドレスバーに、
http:// <ECSインスタンスのパブリックIPアドレス>:8080
と入力します。 Apache Tomcatのウェルカムページが表示された場合、Apache Tomcatは期待どおりにデプロイされます。説明http:// <ECSインスタンスのパブリックIPアドレス>:8080
を入力した後、Apache Tomcatのウェルカムページが表示されない場合は、次の項目を確認します。インスタンスのセキュリティグループがポート8080でのインバウンドトラフィックを許可しているかどうかを確認します。
startup.bat
コマンドを実行してApache Tomcatを起動した後、デフォルトで開いているコマンドプロンプトウィンドウが閉じているかどうかを確認します。 ウィンドウが閉じている場合は、startup.bat
コマンドを再実行してウィンドウを開きます。
オンプレミスのプロジェクトをアップロードしてApache Tomcatをテストする場合は、Apache TomcatのWebサイトのルートディレクトリにWARパッケージをアップロードします。 この例では、
C:\Program Files\apache-tomcat-9.0.97\webapps
ディレクトリが使用されています。 次に、webブラウザーのアドレスバーにhttp:// <ECSインスタンスのパブリックIPアドレス>:8080/<パッケージ名>
と入力して、プロジェクトにアクセスします。 詳細については、「LinuxインスタンスへのファイルのアップロードまたはLinuxインスタンスからのファイルのダウンロード」をご参照ください。