このトピックでは、Alibaba Cloud Linux 2を実行するElastic Compute Service (ECS) インスタンスにJava web環境を手動でデプロイする方法について説明します。 このトピックは、ECSインスタンスでWebサイトを初めて構築するユーザーに適しています。
背景情報
このトピックでは、次のインスタンスタイプとソフトウェアバージョンを使用しています。 操作は、ソフトウェアのバージョンによって異なります。
インスタンスタイプ: ecs.c6.large
オペレーティングシステム: Alibaba Cloud Linux 2.1903 LTS 64ビット
Java開発キット (JDK): JDK 17
Apache Tomcat: 8.5.88
説明この例では、Apache Tomcat 8.5.88が使用されています。 ソースコードは定期的に更新されます。 要件に合ったバージョンを手動で取得できます。
ステップ1: 準備をする
インバウンドルールをインスタンスのセキュリティグループに追加して、必要なポートでトラフィックを許可します。
詳細については、「セキュリティグループルールの追加」をご参照ください。 この例では、SSHポート22、HTTPポート80、HTTPSポート443、およびApache Tomcatポート8080でのトラフィックを許可するインバウンドルールが追加されています。
インスタンスに接続します。
詳細については、以下をご参照ください。 パスワードまたはキーを使用してLinuxインスタンスに接続します。
ファイアウォールを無効にします。
systemctl status firewalldコマンドを実行して、ファイアウォールの状態を確認します。
ファイアウォールが非アクティブの場合、ファイアウォールは無効になります。
ファイアウォールがアクティブの場合、ファイアウォールは有効になります。 この例では、ファイアウォールはアクティブ状態であり、無効にする必要があります。
ファイアウォールを無効にします。 ファイアウォールが無効になっている場合は、この手順をスキップします。
ファイアウォールを一時的に無効にするには、次のコマンドを実行します。
systemctl stop firewalld
説明上記のコマンドを実行すると、ファイアウォールは無効になります。 Linuxオペレーティングシステムを再起動すると、ファイアウォールが有効になり、アクティブ状態に戻ります。
ファイアウォールを完全に無効にするには、次の手順を実行します。
次のコマンドを実行して、ファイアウォールを停止します。
systemctl stop firewalld
次のコマンドを実行してファイアウォールを無効にし、インスタンスの起動時にファイアウォールが起動しないようにします。
systemctl disable firewalld
説明上記のコマンドを実行すると、ファイアウォールは無効になります。 インスタンスを再起動すると、ファイアウォールは無効のままになります。 ファイアウォールを再度有効にすることができます。 詳細については、「Firewalldドキュメント」をご参照ください。
セキュリティ強化Linux (SELinux) を無効にします。
SELinuxのステータスを確認します。
getenforce
コマンドの出力例を次の図に示します。
SELinuxが無効状態の場合、SELinuxは無効になります。
SELinuxがEnforcing状態の場合、SELinuxは有効になります。 この例では、SELinuxはEnforcing状態であり、無効にする必要があります。
SELinuxを無効にします。 SELinuxが無効の場合は、この手順をスキップします。
SELinuxを一時的に無効にするには、次のコマンドを実行します。
setenforce 0
説明上記のコマンドを実行すると、SELinuxは無効になります。 インスタンスを再起動すると、SELinuxが有効になり、[Enforcing] 状態に戻ります。
SELinuxを完全に無効にするには、次のコマンドを実行してSELinux構成ファイルを開きます。
vi /etc/selinux/config
/etc/selinux/configファイルで、ポインタを
SELINUX=enforcing
行に移動し、Iキーを押して編集モードに入ります。SELINUX
を無効に設定し、Escキーを押して編集モードを終了します。:wq
と入力し、Enterキーを押してファイルを保存して閉じます。説明SELinuxを無効にした後、再度有効にすることができます。 詳細については、「SELinuxの有効化または無効化」をご参照ください。
インスタンスを再起動して設定を適用します。
ステップ2: JDKのインストール
JDKをインストールするディレクトリを作成します。
mkdir /usr/jdk
JDKインストールパッケージをダウンロードします。
この例では、JDK 17インストールパッケージがダウンロードされます。 Oracleの公式Webサイトにアクセスして、その他のJDKバージョンに関する情報を表示できます。
cd /usr/jdk wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
JDKインストールパッケージを指定したフォルダに解凍します。
tar xzf jdk-17_linux-x64_bin.tar.gz -C /usr/jdk/
環境変数を設定します。
JDKがインストールされているパスを表示します。
find /usr/jdk -name 'jdk-17.* '
以下のようなコマンド出力が返されます。
/usr/jdk/jdk-17.0。8
設定ファイルを開きます。
vim /etc/profile
設定ファイルの最後で、Iキーを押してInsertモードに入ります。
次の情報を追加します。
説明JAVA_HOME
値は、JDKがインストールされているパスです。 この例では、JDKは /usr/jdk/jdk-17.0.8パスにインストールされます。#set java environment export JAVA_HOME=/usr/jdk/jdk-17.0.7 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH
Escキーを押して挿入モードを終了します。
:wq
と入力し、Enterキーを押してファイルを保存して閉じます。環境変数を適用します。
source /etc/profile
JDKのバージョンを確認します。
java -version
サンプルコマンド出力のJDKバージョン情報:
[root@iZuspq7vnxm**** ~]# java -version java version "17.0.8" 2023-04-18 LTS Java(TM) SE Runtime Environment (build 17.0.7+8-LTS-224) Java HotSpot(TM) 64-Bit Server VM (build 17.0.7+8-LTS-224, mixed mode, sharing)
ステップ3: Apache Tomcatをインストールする
次のコマンドを実行して、Apache Tomcat 8インストールパッケージをダウンロードして解凍します。
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.88/bin/apache-tomcat-8.5.88.tar.gz -- no-check-certificate tar -zxvf apache-tomcat-8.5.88.tar.gz
説明Apache TomcatのダウンロードURLが変更される場合があります。 上記のダウンロードURLが無効な場合は、公式Apache Tomcat Webサイトにアクセスして、最新のダウンロードURLを取得します。
次のコマンドを実行して、Apache Tomcatインストールファイルを /usr/local/tomcat /ディレクトリに移動します。
sudo mv apache-tomcat-8.5.88 /usr/local/tomcat/
/usr/local/tomcat/binディレクトリにアクセスします。
cd /usr/local/tomcat/bin
setclasspath.shスクリプトを編集します。
vi setclasspath.sh
Iキーを押してInsertモードに入り、setclasspath.shスクリプトの最後に次のコンテンツを追加します。
export JAVA_HOME=/usr/jdk/jdk-17.0.8 export JRE_HOME=$JAVA_HOME
説明実際のjdkバージョン番号に基づいてJDK-<バージョン番号> を設定します。
Escキーを押して挿入モードを終了します。
:wq
と入力し、Enterキーを押してファイルを保存して閉じます。Apache Tomcatを起動します。
. /startup.sh
Tomcatプロセスを確認します。
ps -ef | grep tomcat
Apache Tomcatを起動すると、次のようなコマンド出力が返されます。
root 2225 1 40 14:46 pts/0 00:00:04 /usr/jdk/jdk-17.0.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start root 2285 6446 0 14:46 pts/0 00:00:00 grep --color=auto tomcat
ステップ4: テストプロジェクトのデプロイと検証
デプロイされたJava webプロジェクトファイルがWARパッケージの場合、WARパッケージを /usr/local/tomcat/webapps/ ディレクトリにアップロードする必要があります。 ファイル転送機能を備えた接続ツールを使用するか、FTPサイトを構築してプロジェクトファイルをアップロードできます。 プロジェクトファイルがアップロードされた後、ブラウザのアドレスバーに
http:// <インスタンスのパブリックIPアドレス>:8080/<プロジェクト名>
と入力してファイルにアクセスできます。webページのみをアップロードする必要がある場合は、webページを /usr/local/tomcat/webapps/ROOT/ ディレクトリにアップロードできます。 webページがアップロードされた後、ブラウザのアドレスバーに
http:// <インスタンスのパブリックIPアドレス>:8080
と入力してページにアクセスできます。
この例では、Tomcatテストページは /usr/local/tomcat/webapps/ROOT/ ディレクトリに作成されます。 ページにアクセスするには、コンピューターのブラウザーのアドレスバーにhttp:// <インスタンスのパブリックIPアドレス>:8080
と入力します。
テストファイルを作成します。
echo Tomcat test > /usr/local/tomcat/webapps/ROOT/index.jsp
ブラウザを開き、アドレスバーに
http:// <インスタンスのパブリックIPアドレス>:8080
と入力して、インスタンスに接続します。次の図に示すページは、Apache Tomcatがインストールされていることを示しています。 http:// <インスタンスのパブリックIPアドレス>:8080にアクセスできない場合は、Apache Tomcatポート8080へのアクセスを許可するルールがインスタンスのセキュリティグループに追加されているかどうかを確認します。 セキュリティグループルールの追加方法については、「セキュリティグループルールの追加」をご参照ください。