Spring Boot 프로젝트를 EC2에 배포하는 방법을 단계별로 정리했습니다.
IntelliJ를 사용하여 .jar 파일을 생성하고, EC2에 업로드한 후 실행하는 과정까지 상세히 설명합니다.
1. Spring Boot를 .jar 파일로 만들기
IntelliJ에서 Gradle을 사용하여 .jar 파일을 생성합니다.
- 오른쪽 Gradle 창에서 해당 모듈을 선택
- Tasks → build → bootJar 실행
- 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 → 표준 오류를 표준 출력으로 리디렉션
'Spring' 카테고리의 다른 글
Docker 네트워크 가이드 (0) | 2025.03.11 |
---|---|
Vue.js 프로젝트를 EC2에서 Nginx로 배포하는 방법 (0) | 2025.03.08 |
Spring Cloud Config로 yml파일 원격 관리하기 (0) | 2025.03.04 |
서킷 브레이커(Circuit Breaker)란? (0) | 2025.03.04 |
멀티모듈 환경의 Swagger 설정 (2) | 2025.03.04 |