도커 없이 EC2와 RDS만으로 스프링부트 프로젝트를 배포하는 방법을 정리했어요. 처음 AWS를 접하는 분들에게 도움이 되길 바랍니다.
EC2는 말 그대로 클라우드에 있는 가상 서버입니다. 이곳에 우리의 애플리케이션이 돌아갈 거예요.
AWS 콘솔에 로그인하고 EC2 대시보드로 이동합니다.
"인스턴스 시작" 버튼을 클릭합니다.
이름은 원하는 대로 설정하고, Amazon Linux를 선택합니다. (프리티어도 지원됩니다!)
인스턴스 유형은 프리티어인 경우 't2.micro'를 선택합니다.
키 페어를 생성합니다. (이 파일은 절대 잃어버리면 안 됩니다! 안전한 곳에 보관하세요.)

네트워크 설정에서 "편집" 버튼을 클릭하고 보안 그룹을 다음과 같이 설정합니다.
SSH(22): 내 IP만 접근 가능하도록
HTTP(80): 모든 IP 접근 가능
HTTPS(443): 모든 IP 접근 가능
사용자 지정 TCP(8080): 모든 IP 접근 가능 (스프링부트용)

EC2 대시보드 왼쪽 메뉴에서 "탄력적 IP"를 클릭합니다.
"탄력적 IP 주소 할당"을 클릭합니다.
할당 버튼을 클릭합니다.

위 사진과 같이 탄력적 IP 리스트에 방금 생성된 탄력적 IP를 선택하고 "작업" > "탄력적 IP 주소 연결"을 클릭합니다.
인스턴스에 방금 생성한 EC2를 선택하고 연결합니다.
RDS는 관계형 데이터베이스 서비스입니다. 직접 EC2에 DB를 설치할 수도 있지만, RDS를 사용하면 관리가 훨씬 편해요.
AWS 콘솔에서 RDS 대시보드로 이동합니다.
"데이터베이스 생성" 버튼을 클릭합니다.
"표준 생성"을 선택하고, MySQL을 선택합니다. (프리티어를 선택하세요!)
DB 인스턴스 식별자, 마스터 사용자 이름, 마스터 암호를 입력합니다.
( 이 정보는 나중에 DB 접속에 사용되니 절대 잊지 마세요! )

인스턴스 구성은 프리티어용인 "db.t2.micro"를 선택합니다.
스토리지는 프리티어에서 최대 20GB까지 무료입니다.
중요! "연결" 탭에서 "퍼블릭 액세스" 설정을 "예"로 변경합니다.
이 설정을 해야 로컬 PC에서도 RDS에 접속할 수 있어요.
VPC 보안 그룹은 새로 생성하거나 기존 것을 사용해도 됩니다.
"추가 구성"에서 초기 데이터베이스 이름을 지정합니다.
"데이터베이스 생성" 버튼을 클릭합니다.
생성된 RDS를 클릭하고 "보안 그룹" 부분을 확인합니다.
해당 보안 그룹을 클릭하여 설정 화면으로 이동합니다.
"인바운드 규칙 편집"을 클릭합니다.
"규칙 추가"를 클릭하고 다음과 같이 설정
유형: MySQL/Aurora (3306)
소스: EC2 보안 그룹 ID (EC2에서 RDS로 접근하기 위함)
또 하나의 규칙을 추가
유형: MySQL/Aurora (3306)
소스: 내 IP (로컬에서 개발 중 접속하기 위함)
"규칙 저장" 버튼을 클릭합니다.

이 과정을 통해서 EC2 <-> RDS 연동 성공!
터미널(맥) 또는 Git Bash(윈도우)를 실행합니다.
키 페어가 있는 폴더로 이동합니다.
다음 명령어로 키 파일의 권한을 변경
chmod 600 your-key-pair.pem
SSH 접속 명령어 실행
ssh -i "your-key-pair.pem" ec2-user@your-ec2-public-ip
접속이 성공하면 서버에 필요한 소프트웨어를 설치
# 시스템 업데이트
sudo yum update -y
# Git 설치
sudo yum install -y git
# Git 설정
git config --global user.name "내이름"
git config --global user.email "내이메일@example.com"
# Java 설치 (Amazon Corretto 17 기준)
sudo yum install -y java-17-amazon-corretto-devel
# Java 버전 확인
java -version
# 홈 디렉토리에 프로젝트용 폴더 생성
mkdir app
cd app
# 깃허브에서 프로젝트 클론
git clone 내프로젝트주소
cd 내프로젝트명
RDS 연결을 위해 application.properties 또는 application.yml 파일을 수정
# application.properties 예시
spring.datasource.url=jdbc:mysql://your-rds-endpoint:3306/your-db-name
spring.datasource.username=your-master-username
spring.datasource.password=your-master-password
4.3 프로젝트 빌드 및 실행
# 빌드 파일에 실행 권한 부여
chmod +x ./gradlew
# 프로젝트 빌드 (Gradle 기준)
./gradlew build
# 빌드된 JAR 파일 실행
cd build/libs
java -jar 프로젝트이름-버전.jar
터미널을 종료해도 서버가 계속 실행되도록 설정
# 백그라운드에서 실행
nohup java -jar 프로젝트이름-버전.jar &
# 프로세스 확인
ps -ef | grep java
서버를 중지
# 프로세스 ID 확인
ps -ef | grep java
# 프로세스 종료
kill -9 프로세스ID번호