AWS에 백엔드 서버 배포하는 법

Spring Boot 프로젝트를 EC2에 배포하는 방법을 단계별로 정리했습니다.
IntelliJ를 사용하여 .jar 파일을 생성하고, EC2에 업로드한 후 실행하는 과정까지 상세히 설명합니다.


1. Spring Boot를 .jar 파일로 만들기

IntelliJ에서 Gradle을 사용하여 .jar 파일을 생성합니다.

  1. 오른쪽 Gradle 창에서 해당 모듈을 선택
  2. Tasks → build → bootJar 실행
  3. build/libs 디렉토리에 .jar 파일이 생성됨

2. .jar 파일을 EC2 서버에 옮기기

EC2에 .jar 파일을 업로드하기 위해 scp 명령어를 사용합니다.
먼저 서버에 등록된 공개키와 한 쌍인 사설키(private key)를 준비합니다.

권한 설정

chmod 400 private_key.pem
 

※ 권한이 너무 열려 있으면 Permissions for 'private_key.pem' are too open. 오류가 발생할 수 있음

파일 전송 명령어

scp -i private_key.pem 옮길파일 ec2-user@EC2_PUBLIC_IP:~/경로

 

예시:

scp -i mykey.pem build/libs/demo-0.0.1-SNAPSHOT.jar ec2-user@3.25.147.182:~/

3. EC2 인스턴스에서 실행

EC2에 접속한 후 .jar 파일을 실행합니다.

1) SSH로 EC2 접속

ssh -i private_key.pem ec2-user@EC2_PUBLIC_IP

 

2) 환경 변수 설정

~/.bashrc 파일을 수정하여 환경 변수를 설정합니다.

vim ~/.bashrc
 

unset rc 밑에 다음과 같은 양식으로 환경 변수를 추가합니다.

export DB_USER="testUser"
export DB_PASSWORD=
"testPassword"
 

변경 사항을 적용하려면 다음 명령어를 실행합니다.

source ~/.bashrc
 
 

3) Spring Boot 애플리케이션 실행

백그라운드에서 실행되도록 nohup을 사용합니다.

 

nohup java -jar demo-0.0.1-SNAPSHOT.jar > output.log 2>&1 &
 
 

명령어 설명

  • nohup → SSH 세션이 종료되어도 계속 실행
  • & → 백그라운드 실행
  • output.log → 로그 파일 저장
  • 2>&1 → 표준 오류를 표준 출력으로 리디렉션