[배포] EC2로 Springboot 배포하기

공부기록·2024년 5월 8일
0
post-thumbnail

힉교에서 졸업 프로젝트를 진행하는데 🎉AWS🎉를 지원해준다.

구름IDE는 권한오류에 설치오류에 이것저것 문제였는데 다행이다..

EC2는 학교에서 지정해준대로 생성하였다. (VPC와 인터넷게이트웨이 모두 설정된 것 사용)

보안그룹은 아래와 같이 설정해줬다. 인바운드/아웃바운드 규칙은 동일하게 설정했다.

(사실 3000번은 필요없는데 그냥.. 다 추가하는게 마음 편해서 추가했다.)



EC2 생성

  • Ubuntu 서버 사용

  • 키페어 생성

생성완료!


다음 인스턴스를 내 Command창에서 이용가능하도록 SSH 연결을 진행해준다.

  • 위에서 생성한 .pem 파일이 존재하는 곳에서 아래의 퍼블릭 DNS를 통째로 복사 붙여넣기 해준다.

!접속완료!


EC2에는 SpringBoot clone 해올 예정이라 jdk만 설치해줬다.

sudo apt-get update
sudo apt-get install openjdk-17-jdk

java --version


원래 docker를 사용해서 배포하려했는데 docker에 문제가 발생... 해결은 나중에 하기로하고 일단 배포부터 진행하였다.

Git 설치 및 clone

sudo apt install git

git clone {git repository 주소}

🎧프로젝트 배포

gradlew 폴더가 존재하는 디렉토리로 이동 후 build하여 jar파일을 생성시켜주어야한다.

./gradlew build

❌첫 build 에러

  • gradlew 권한에러

해결방법

sudo chmod +x gradlew

❌두번째 build 에러

  • test를 인식못한다

해결방법

./gradlew build -x test

jar 파일 생성 확인

build 성공시 build 디렉토리가 생성된다. build > libs에 생성된 jar 파일 확인!

내 cmd가 꺼져도 백그라운드에선 실행되야 하므로 nohup을 이용해줬다.

nohup java -jar SNAPSHOT.jar &


배포 성공!! 이제 SWAGGER 공유가 가능하다...

SWAGGER가 springdocs를 쓰면서 port 번호를 함께 기입해줘야한단다.

그리고 주소가

http://{IP주소}/swagger-ui/index.html#

이었는데 들어온 이야기 두가지

  1. 저렇게 숫자주소 그대로 쓸거야?
  2. http 하면 나중에 소셜로그인 때 충돌이 발생할 수 있어

... 갈 길이 멀다.

두가지는 다음 게시물에 기록하기로!

0개의 댓글

관련 채용 정보