프레임워크/Spring Boot

Spring Boot EC2 배포 가이드 (Backend & DB)

munsik22 2025. 11. 25. 21:54

목표

로컬에서 개발한 Spring Boot 프로젝트를 AWS EC2(Ubuntu) 서버에 업로드하고, MariaDB와 연동하여 무중단으로 실행한다.

사전 준비

  • AWS EC2 인스턴스 생성 완료 (OS: Ubuntu 22.04 LTS 권장)
  • 보안 그룹(Security Group) 설정: 22 (SSH), 8080 (Spring Boot) 포트 개방
  • SSH 키 파일(.pem) 보유

1. EC2 접속 및 환경 설정

Git Bash 등의 터미널로 EC2에 접속해 필요한 파일을 설치한다.

1-1. SSH 접속

ssh -i "키파일.pem" ubuntu@<EC2-퍼블릭-IP>

1-2. 기본 패키지 업데이트 및 설치

sudo apt update

sudo apt install openjdk-17-jdk -y
java -version
# (openjdk version "17.0.x" ... 출력을 확인)

sudo apt install mariadb-server -y
sudo systemctl start mariadb
sudo systemctl enable mariadb

2. 데이터베이스(MariaDB) 설정

application.properties에 설정된 DB명과 계정 정보를 생성한다.

2-1. DB 접속

sudo mariadb

2-2. Database 및 User 생성 쿼리

SQL 프롬프트(MariaDB [(none)]>)에 아래 내용을 한 줄씩 입력한다.

CREATE DATABASE 데이터베이스;
CREATE USER '아이디'@'localhost' IDENTIFIED BY '비밀번호';
GRANT ALL PRIVILEGES ON 데이터베이스.* TO '아이디'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. 프로젝트 빌드 및 업로드

3-1. 프로젝트 빌드

프로젝트 루트 폴더에서 터미널을 열어 빌드 파일을 생성한다.

./gradlew build -x test
  • 빌드에 성공한 경우 build/libs/프로젝트명-버전-SNAPSHOT.jar 파일이 생성된다.
  • 필자의 경우 자바 버전 오류 때문에 빌드에 실패했었는데, 여기서 Amazon Corretto 17을 다운받아 설치해서 빌드에 성공했다.
 

Downloads for Amazon Corretto 17 - Amazon Corretto 17

Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.

docs.aws.amazon.com

3-2. EC2 업로드

FileZilla 등을 사용해서 루트 폴더에 jar 파일과 env 파일을 업로드한다.


4. 서버 실행 및 배포

4-1. 백그라운드 실행

터미널을 종료해도 서버가 계속 돌아가도록 nohup을 사용한다.

nohup java -jar shopping-mall-0.0.1-SNAPSHOT.jar &

4-2. 로그 보기

서버가 성공적으로 실행되었는지 확인하려면 nohup.out 파일을 확인해야 한다.

tail -f nohup.out

4-3. 서버 종료

프리티어라도 잘못하면 요금 폭탄을 맞을 수 있기 때문에 사용하지 않는다면 서버를 종료하자.

pkill -f java