概要
AWSのEC2インスタンスにspring-bootアプリケーションを実行するためのセットアップを行います。
特にtomcatの導入に苦労し、githubからプロジェクトをcloneしてjar/warファイルを作成し実行するデプロイについて書いていこうと思います。
何か間違いがありましたらご指摘お願いいたします。
アップデート 確認
sshでec2-userにログインした後、linuxのアップデートを行います
sudo yum update
Javaのインストール
今回はjava8をインストール。
//java11のインストール
sudo yum -y install java-11-amazon-corretto
//java8のインストール
yum install -y java-1.8.0-openjdk
使用したいjavaのバージョンによってインストール方法が変わる。
gitからプロジェクトをcloneしてjarファイルを生成し実行
Gitのインストール
gitのリモートリポジトリにpushしたプロジェクトのコードをEC2インスタンスに取り込むために必要。
cloneするためにgithubやコンソールからgitにログインしておく。
//Gitのインストール
sudo yum -y install git
Mavenのインストール
Apache Mavenのインストール
MavenにはTomcat,Apacheが内包されており、簡単にデプロイができる。
//Apache Mavenのインストール
sudo wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz
//インストールしたMavenファイルの解凍
sudo tar -xzvf apache-maven-3.8.4-bin.tar.gz
//解凍ファイルのディレクトリを移動
sudo mv apache-maven-3.8.4 /opt/
//テキストエディタでpathを追加。vimを使用
vim .bash_profile
//Mavenのインストールされたパスを指定、パスを通す
MVN_HOME=/opt/apache-maven-3.8.4
PATH=$MVN_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
//変更を保存
source .bash_profile
Githubからプロジェクトをクローン
//クローン
git clone -b ブランチ名 リモートリポジトリurl
Mavenでプロジェクトのビルド
//プロジェクトの配下に移動(pom.xmlが配下にあることを確認)
cd プロジェクト名
//jarのビルド
mvn package
jarファイルのビルドに成功すると配下にtargetディレクトリが作成される。
$ ls target
aws-deploy-springboot-0.0.1-SNAPSHOT classes maven-archiver test-classes
aws-deploy-springboot-0.0.1-SNAPSHOT.war generated-sources maven-status
aws-deploy-springboot-0.0.1-SNAPSHOT.war.original generated-test-sources surefire-reports
作成したjarファイルを実行。
java -jar jarファイルのパス
http://EC2のパブリックIPまたはDNS名:8080/(コンテキストパス)/ルーティングされたパス
で動作確認できる。