Spring Boot 애플리케이션 AWS EC2에 배포하기 (Git Clone + JAR 실행)

2025. 3. 5. 21:45AWS

 

2025.03.05 - [AWS] - 스프링부트 jar 파일생성 후 페어키로 EC2에 접속하여 배포하는 방법

 

스프링부트 jar 파일생성해서 AWS EC2에 배포하기

오늘은 제가 만들고 있는 스프링부트 프로젝트를 배포해보도록 하겠습니다!단계는 크게 1. jar파일 생성하기 2. AWS EC2에 배포하기 로 나뉜다. jar 파일이란?JAR(Java ARchive) 파일은 Java에서 사용되는

1000end.tistory.com

 

이전에는 SSH를 사용해서 EC2에 배포해보는 방식을 사용해봤습니다만 이번에는 인스턴스에 직접 연결해서 배포해보도록 하겠습니다.

이전 글에서 EC2 인스턴스를 만들어놨다고 가정하고 이후부터 진행해보겠다.

 

이번에는 조금 업그레이드해서 탄력적 IP를 설정해볼 예정!

 

탄력적 IP 사용이유

EC2 인스턴스를 생성하면 IP를 할당받지만 임시적인 IP이기 때문에 EC2 인스턴스를 중지시켰다가 다시 실행시켜보면 IP가 바뀌어있다. 중지시켰다가 다시 실행시킬 때마다 IP가 바뀌면 매번 다시 설정해줘야하기 때문에 불편한 상황. 다시 실행시켜도 바뀌지 않는 고정 IP를 할당받는 것이 좋다.

 

1. 탄력적 IP할당 하기

 

EC2 > 탄력적 IP 카테고리에 들어가서 탄력적 IP 주소 할당을 선택

 

기본값으로 두고 할당을 선택

 

구분하기 쉽게 이름을 변경해주자

 

 

작업 > 탄력적 IP 주소 연결 선택

 

 

전에 만들어뒀던 EC2 인스턴스를 선택해 준 뒤 연결을 선택

 

그럼 이제 EC2 인스턴스의 IPv4 주소가 탄력적 IP주소로 바뀌어있을 것이다!

 

탄력적 IP를 적용한 인스턴스의 상태. 중지해도 IP주소가 그대로 남아있다.

 

 

2. EC2에 접속해서 배포하기

이번에는 SSH 연결이 아닌 EC2 인스턴스 연결을 이용해보겠다.

 

sudo apt update
sudo apt install openjdk-17-jre-headless

 

해당 명령어를 입력해서 apt 업데이트 후 jdk17을 설치해준다.

 

git clone {프로젝트URL}

 

자신의 깃허브에 올라가 있는 프로젝트를 클론한다.

 

 

그리고 클론한 프로젝트의 위치로 이동한다. 

여기에 내가 gitIgnore에 추가했던 파일들은 올라오지 않는다. 그래서 실행에 중요한 설정파일인 application.yml 도 없기 때문에 만들어줘야한다. 여러 방법이 있지만 나는 내가 직접 생성하는 방법을 택했다.

 

vi application-dev.yml

 

resources파일로 이동 후 위 명령어를 입력해서 dev.yml파일을 만들어줄 것이다.

명령어를 입력하고 dev.yml 파일 복사 붙여넣기 후 :wq로 빠져나온다.

나는 참고로 깃에 application.yml 파일은 올려뒀지만 dev.yml파일은 올라가지 않았다. 그래서 나는 dev.yml파일을 만들어 주는 것!

 

./gradlew clean build
혹은
./gradlew clean build -x test (테스트없이 빌드만)

 

다음으로 빌드를 진행해준다. 해당 명령어는 이미 빌드된게 있으면 clean 지우고 다시 빌드하라는 명령어다.

주의할 점은 아무데서나 하면 안되고 꼭 프로젝트 루트 경로에서 실행해줘야 한다.

 

 

빌드가 다 되었으면 빌드가 된 파일이 있는 경로로 이동한다.

보통 build > libs 경로에 있다. 저 중에 plain이 붙지 않은 jar파일을 사용할 것이다.

 

sudo java -jar PetLog-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

 

해당 명령어로 jar파일을 실행한다. 나는 application-dev.yml파일을 사용하므로 뒤에 dev파일을 사용한다는 옵션도 붙여주었다. 

그냥 yml파일 사용하는 분들은 뒤에 속성 떼고 입력하면 된다.

 

그럼 리눅스 환경에서 스프링부트가 실행되고 주소로 들어가보면 정상적으로 배포가 완료된게 보인다.

 

 

추가) 다시 새로운 깃으로 재배포하기

한번 배포한 후 수정사항이 있어 재배포가 필요했고 이미 받았던 깃클론을 제거하고 다시 시작해야했다.

 

rm -rf {프로젝트 이름}
rm -rf FO-BE

 

홈 경로에서 해당 명령어로 클론받아져있는 프로젝트를 삭제하고 위에 깃클론부터 다시 반복하면 된다.