ECS インスタンスに Jetty をインストールして設定し、軽量なサーブレットコンテナで Java Web アプリケーションをホストします。
前提条件
ECS インスタンスは、次の条件を満たす必要があります。
-
インスタンスに静的パブリック IP アドレスまたは Elastic IP アドレス (EIP) があること。
-
セキュリティグループで、リモート接続と Jetty 用のポート (ポート 22、3389、8080 など) へのインバウンドアクセスが許可されていること。詳細については、「セキュリティグループルールの追加」をご参照ください。
-
インスタンスに Java 環境がデプロイされていること。詳細については、「Java 環境のデプロイ」をご参照ください。
操作手順
ECS インスタンスのオペレーティングシステムに基づいて手順を選択してください。
Linux
このトピックでは、Jetty 12.0.16 を例として使用します。異なるバージョンまたはディレクトリを使用する場合は、バージョン番号とパスを適宜置き換えてください。
-
Linux サーバーにログインします。詳細については、「Workbench を使用した Linux インスタンスへのログイン」をご参照ください。
-
Jetty 12 のインストールパッケージをダウンロードして解凍します。
重要-
別のバージョンをインストールする場合、またはダウンロードリンクが無効な場合は、Jetty の公式サイトにアクセスして正しいダウンロードリンクを取得して、URL を置き換えてください。
-
Jetty のバージョンによってサポートされる JDK のバージョンは異なります。Jetty の公式サイトで、お使いの JDK と互換性のある Jetty のバージョンを選択してください。

wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/12.0.16/jetty-home-12.0.16.tar.gz --no-check-certificate tar -zxvf jetty-home-12.0.16.tar.gz -
-
Jetty ディレクトリを移動します。
sudo mv jetty-home-12.0.16 /usr/local/jetty/ -
jetty-baseディレクトリを作成します。sudo mkdir /usr/local/jetty-base -
環境変数を設定します。
-
~/.bashrcファイルを編集します。sudo vim ~/.bashrc -
iキーを押して編集モードに入り、ファイルに次の内容を追加します。説明JETTY_HOMEに実際の Jetty インストールディレクトリを、JETTY_BASEにjetty-baseディレクトリを設定します。export JETTY_HOME=/usr/local/jetty export JETTY_BASE=/usr/local/jetty-base -
Escキーを押し、:wqと入力してEnterキーを押すと、ファイルが保存されて閉じられます。 -
変更を適用します。
source ~/.bashrc
-
-
Jetty モジュールを有効化し、
jetty-baseディレクトリを初期化します。-
jetty-baseディレクトリに移動します。cd /usr/local/jetty-base -
jetty-baseディレクトリを初期化します。これにより、$JETTY_BASE/start.d/ディレクトリと、サーバー設定を含むその他のディレクトリが作成されます。説明-
利用可能なモジュールを表示するには、
java -jar $JETTY_HOME/start.jar --list-modules=*コマンドを実行します。 -
Jetty 9 を使用する場合、
--add-moduleを--add-to-startに置き換えます。
sudo java -jar $JETTY_HOME/start.jar --add-module=server,http,deploy
-
-
-
デプロイを検証します。
重要jetty-baseディレクトリで、次のコマンドを実行します。-
Jetty サンプルの Web アプリケーションをデプロイします。
-
Jetty 11 または 10 を使用している場合、次のコマンドで
demosをdemoに置き換えてください。 -
Jetty 9 を使用する場合は、
sudo mv $JETTY_HOME/demo-base/webapps/ROOT $JETTY_BASE/webappsコマンドを実行してサンプルをデプロイします。
説明また、テスト用にローカルの WAR パッケージを
$JETTY_BASE/webappsディレクトリにアップロードすることもできます。 詳細については、「ファイルのアップロードまたはダウンロード」をご参照ください。sudo java -jar $JETTY_HOME/start.jar --add-module=demos -
-
Jetty を起動します。
説明デフォルトでは、Jetty はポート 8080 でリッスンします。
sudo netstat -tunlp | grep 8080を実行して、ポートが使用中かどうかを確認します。使用中の場合は、nohup sudo java -jar $JETTY_HOME/start.jar jetty.http.port=8081 &で別のポートを指定します。nohup sudo java -jar $JETTY_HOME/start.jar & -
ブラウザーで
http://<Public IP address>:8080を入力します。テストページが表示された場合、デプロイは成功です。説明-
Jetty のポートを変更した場合は、8080 を新しいポート番号に置き換えて、セキュリティグループで新しいポートを許可してください。詳細については、「セキュリティグループルールの追加」をご参照ください。
-
ローカル WAR パッケージをアップロードした場合、
http://<パブリック IP アドレス>:8080/<パッケージ名>にアクセスしてテストします。

-
-
Windows
このセクションは、Jetty 12、Jetty 11、および Jetty 10 にのみ適用されます。
このトピックでは、Jetty 12.0.16 を例として使用します。 別のバージョンまたはディレクトリを使用する場合は、バージョン番号とパスを適宜置き換えてください。
-
Windows サーバーにログインします。詳細については、「Workbench を使用した Windows インスタンスへのログイン」をご参照ください。
-
Jetty をダウンロードします。
Jetty のバージョンによってサポートされる JDK のバージョンは異なります。Jetty の公式サイトで、お使いの JDK と互換性のあるバージョンを選択して、インストールパッケージをダウンロードしてください。


-
Jetty パッケージを解凍します。
パッケージを任意の場所に解凍します。このトピックでは、
C:\downloadを例として使用します。重要スペースを含まないパスに Jetty を解凍してください。
-
環境変数
JETTY_HOMEを設定します。-
[この PC] を右クリックし、[プロパティ] を選択します。

-
[バージョン情報] ページで、一番下までスクロールし、[高度なシステム設定] をクリックします。

-
[環境変数] をクリックします。

-
[システム環境変数] セクションで、[新規] をクリックします。 変数名に
JETTY_HOMEを、値にC:\download\jetty-home-12.0.16などの Jetty インストールディレクトリを設定します。 [OK] をクリックします。
-
[OK]をクリックして、設定を保存します。
-
-
jetty-baseフォルダーを作成します。このトピックではC:\downloadを例に説明します。
-
jetty-baseフォルダーを初期化します。-
jetty-baseフォルダーに移動し、アドレスバーにcmdと入力して、Enterを押してコマンドプロンプトを開きます。
-
jetty-baseフォルダーを初期化します。これにより、start.dディレクトリおよびサーバー設定を格納するその他のディレクトリが作成されます。java -jar %JETTY_HOME%/start.jar --add-module=http,server,deploy
-
-
デプロイを検証します。
-
Jetty サンプルの Web アプリケーションをデプロイします。
Jetty 11 または 10 を使用する場合は、次のコマンドの
demosをdemoに置き換えてください。説明テスト用にローカルの WAR パッケージを
<jetty-base>/webappsディレクトリにアップロードすることもできます。<jetty-base>はjetty-baseフォルダーへのパスです (例:C:\download\jetty-base)。詳細については、「ファイルのアップロードまたはダウンロード」をご参照ください。java -jar %JETTY_HOME%/start.jar --add-module=demos -
Jetty を起動します。Jetty の起動後は、コマンドプロンプトウィンドウを閉じないでください。
説明デフォルトでは、Jetty はポート 8080 でリッスンします。
netstat -ano | findstr :8080を実行して、ポートが使用中かどうかを確認します。その場合、java -jar %JETTY_HOME%/start.jar jetty.http.port=8081で別のポートを指定します。java -jar %JETTY_HOME%/start.jar -
ブラウザーで
http://<Public IP address>:8080を入力します。テストページが表示されると、デプロイは成功です。説明-
Jetty のポートを変更した場合は、8080 を新しいポート番号に置き換えて、セキュリティグループで新しいポートを許可してください。詳細については、「セキュリティグループルールの追加」をご参照ください。
-
ローカル WAR パッケージをアップロードした場合は、
http://<パブリック IP アドレス>:8080/<パッケージ名>にアクセスしてテストします。

-
-
次のステップ
-
サーバーで Web サイトを設定して、ドメイン名をインスタンスのパブリック IP アドレスに関連付けます。詳細については、「Web サイトの構築」をご参照ください。
アプリケーションでデータベースが必要な場合は、Properties ファイルなどの Web プロジェクトの設定ファイルにデータベース設定を追加します。開発後、WAR パッケージを
$JETTY_BASE/webappsディレクトリにデプロイし、Jetty を起動してアプリケーションにアクセスします。詳細については、Jetty の公式サイトをご覧ください。説明異なる Jetty バージョンを使用する場合は、URL のバージョン番号を置き換えてください。
ローカルファイルを ECS インスタンスにアップロードするには、「ファイルのアップロードまたはダウンロード」をご参照ください。
データベースを使用するには、ApsaraDB RDS for MySQL を使用するか、インスタンスに MySQL データベースをデプロイすることもできます。
-
Server Load Balancer (SLB) を使用して、Web サイトの可用性とパフォーマンスを向上させることができます。
よくある質問
デプロイ後、http://<Public IP address>:8080 にローカルのブラウザからアクセスできません
Jetty をデプロイした後、ブラウザから http://<パブリック IP アドレス>:8080 にアクセスできない場合があります。考えられる原因:
-
原因1:ファイアウォールまたは SELinux によるアクセスのブロック
システムファイアウォールまたは SELinux が外部からのアクセスをブロックしている可能性があります。解決策:
-
Linux:システムファイアウォールと SELinux を無効にしてください。
-
Windows:システムファイアウォールを無効にしてください。
-
-
原因2:Jetty のカスタムポート
起動時に Jetty のポートを変更した場合。
http://<パブリック IP アドレス>:8080にある 8080 を新しいポート番号に置き換え、セキュリティグループで新しいポートを許可します。