8.1. AWS 프리티어로 Spring Boot 백엔드 서버 구축하기(EC2 + RDS 구성 및 비용 절감 방법 포함)
목차
- EC2 인스턴스에 Spring Boot 백엔드 서버 배포하기
- RDS(MySQL)와 EC2 연동 및 RESTful API 테스트
- 비용 절감: EC2 중지 및 RDS 스냅샷 백업 & 복원
8.1. EC2 인스턴스에 Spring Boot 백엔드 서버 배포하기
1-1. AWS EC2 인스턴스 생성
- AWS 프리티어 계정을 사용하여 AWS Management Console에 로그인합니다.
- EC2 서비스로 이동하여 인스턴스 시작을 클릭합니다.
- 인스턴스 이름과 생성 정보를 선택하고 설정 합니다.
- 이름 입력
예) ec2-AppServer
- Amazon Machine Image(AMI) 선택
Ubuntu 22.04 LTS (프리티어 무료 사용 가능)
- 인스턴스 유형 선택
t2.micro (프리티어 무료 제공)
- 키 페어 생성 및 다운로드
키 페어 이름 입력(예: "sshkey")하고 "새 키 페어 생성"을 클릭하면 sshkey.pem 파일이 다운로드 된니다.
생성된 sshkey.pem 키 파일을 저장하여 SSH 접속 시 사용 합니다.
- 보안 그룹 설정
HTTP(80), HTTPS(443), SSH(22), MySQL/Aurora(3306) 포트 열기
- 인스턴스가 시작 버튼을 클릭하고, 시작되면 퍼블릭 IP 확인 합니다.
- 퍼블릭 IPv4 주소를 복사해 둡니다.
1. EC2 인스턴스에서 8080 포트 오픈 설정 방법
EC2 인스턴스에서 Spring Boot 백엔드 서버를 실행할 때, 외부에서 접근할 수 있도록 8080 포트를 열어야 합니다.
이를 위해 AWS 보안 그룹(Security Group) 설정을 수정하면 됩니다.
AWS 관리 콘솔에서 보안 그룹을 설정하는 방법입니다.
1) EC2 인스턴스의 보안 그룹 확인
- AWS 콘솔 → EC2 서비스 이동
- 실행 중인 EC2 인스턴스 선택
- 하단에서 보안(Security) 탭 선택
- 연결된 보안 그룹 이름 클릭 (예: sg-0123456789abcdef0)
2) 보안 그룹에 8080 포트 추가
- 보안 그룹 설정 페이지에서 "인바운드 규칙(Inbound rules)" 탭 선택
- "인바운드 규칙 편집(Edit inbound rules)" 버튼 클릭
- 새 규칙 추가:
유형(Type): Custom TCP
포트 범위(Port Range): 8080
소스(Source): Anywhere (0.0.0.0/0, ::/0) (또는 특정 IP 제한 가능)
- 저장(Save)
- 결과: 이제 EC2의 8080 포트가 외부에서 접근 가능해짐
1-2. SSH로 EC2 인스턴스 접속 후 Java 설치하기
EC2에 SSH 접속 후, 필요한 패키지를 설치합니다.

1-3. Spring Boot 애플리케이션 AWS에 배포 & 실행하기
- 로컬PC에서 개발/테스트가 완료된 Spring boot 프로그램의 jar 파일을 생성 합니다.
# Maven을 이용해 프로젝트 빌드
# -DskipTests 옵션: 빌드 시 Junit 테스트를 skip하고 빌드 합니다.
# 빌드 시 Junit 테스트가 실행될 경우, 테스트가 실패하면 빌드도 실패하게 됨
./mvnw clean package -DskipTests

- 로컬PC에서 빌드된 jar파일을 AWS EC2서버로 복사(배포) 합니다.
# scp 명령으로 jar파일을 배포
scp -i "키파일.pem" your-app.jar ubuntu@"퍼블릭IP":/home/ubuntu/ - AWS의 EC2 서버에서 애플리케이션을 실행 합니다.
java -jar build/libs/your-app.jar
- 백그라운드 실행 (종료 방지)
# 그냥 실행시 터미널이 종료되면 프로세스도 함께 종료되는 문제를 해결하기 위함이며,
# output.log 파일로 Application 실행 중 발생되는 로그(stdout/stderr)가 저장되도록 함.
nohup java -jar build/libs/your-app.jar > output.log 2>&1 &