はじめに
前回、EC2にJettyをインストールしました。
AmazonLinuxにJettyを導入してデモサイトを起動してみる
しかし、Jettyをjarファイルに組み込んでしまえば、そもそもJettyをEC2にインストールする必要がないことがわかりました。今回はそのデプロイ手順を紹介します。
Jettyをjarファイルに組み込む方法はこちらでは紹介しませんので、ご了承ください。
jarファイルをデプロイする
カレントディレクトリに以下の2つがあるとします。
- Jettyが組み込み済みのjarファイル
- 例. SampleProject-0.0.1-SNAPSHOT.jar
- sshアクセスのための秘密鍵
- 例. sample-project.pem
デプロイ先のEC2のアドレスがxxx.yyy.zzz.wwwの場合、以下のコマンドでデプロイできます。
# jarファイルをアップロードする
scp -i ./sample-project.pem -r ./SampleProject-0.0.1-SNAPSHOT.jar ec2-user@xxx.yyy.zzz.www:~/
# sshでEC2にログインする
ssh ec2-user@xxx.yyy.zzz.www -i ./sample-project.pem
# サンプルプロジェクトをJettyで起動する
java -jar ~/SampleProject-0.0.1-SNAPSHOT.jar
これで、 http://xxx.yyy.zzz.www:8080 にアクセスしてみると、jarファイルの内容に応じたサイトが表示されるはずです。
インスタンス起動時に自動起動するようにする。
まず、/etc/init.d/にシェルスクリプトを作成します。
sudo nano /etc/init.d/SampleProject.sh
シェルスクリプトの中身は以下のようにしてください。
# !/bin/sh
# chkconfig: 2345 99 10
# description: start jetty SampleProject
java -jar /home/ec2-user/SampleProject-0.0.1-SNAPSHOT.jar
上記の内容でスクリプトを保存したら、以下のコマンドを実行します。
# 管理者に実行権限を与える
sudo chmod u+x /etc/init.d/SampleProject.sh
# chkconfigにスクリプトを追加
sudo chkconfig --add SampleProject.sh
# マシン起動時にスクリプトを実行するように設定
sudo chkconfig SampleProject.sh on
これで自動起動するようになります。
最後に
これだけで、Webアプリのデプロイが完了しました。Jettyは便利ですね。