MountainGo

[AWS] EC2 Linux2 에 Spring Boot 프로젝트 배포

gom20 2023. 1. 26. 15:15

1. 인스턴스에서 JDK 설치

java 17을 쓰고 있기 때문에 아래와 같이 설치하였다.

 

java17 rpm 다운로드

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm

java17 rpm 설치

sudo rpm -ivh jdk-17_linux-x64_bin.rpm

설치한 JDK 버전 선택

sudo alternatives --config java

확인

java -version

 

2. Git clone

git설치

sudo install git

 

SSH키 생성 

cd ~/.ssh

ssh-keygen -t rsa -C github계정 메일

 

공개키를 github에 등록

cat id_rsa.pub

출력된 내용을 복사하여 github ssh key 에 입력한다.

Github setting > SSH and GPS Key > new SSH Key 

 

Repository Clone SSH의 주소를 복사

 

서버에서 git clone 수행

git clone SSH주소

 

3. 빌드

gradlew 권한 수정

-rw-r--r-- 1 root root 8188 Jan 26 06:13 gradlew
sudo chmod 777 ./gradlew
-rwxrwxrwx 1 root root 8188 Jan 26 06:13 gradlew

 

빌드

sudo ./gradlew build

build/llibs 에 jar파일 생성

 

실행 

java -jar 파일명.jar

 

4. 백그라운드 실행

위와 같이 실행할 경우, EC2 세션을 종료하면 서버도 종료됨. 

백그라운드 실행

nohup java -jar 파일명.jar &

 

로그 확인

cat nohup.out

실시간 로그를 보기 위해서는 tail을 사용한다.

 

서버 종료

jobs
fg 해당 잡 인덱스

ctrl+c로 종료

 

5. 접속 확인

인바운드 규칙 추가

스프링 부트 프로젝트가 8080포트를 사용하기때문에 인바운드 규칙에 추가

swagger 접속

public dns ipv4주소:8080/swagger-ui.html

잘 배포되었다.