오늘의 목표는 실제 운영 환경과 유사하게, 애플리케이션을 실행하는 서버(EC2)와 데이터를 저장하는 서버(RDS)를 물리적으로 분리하고, 이 둘을 안전하게 연결하는 것입니다.
왜 분리하는가?
my-database.xxxxxxxxxxxx.ap-northeast-2.rds.amazonaws.com과 같은 고유한 엔드포인트(주소)가 부여됩니다.MYSQL/Aurora (포트 3306)sg-xxxxxxxx)를 지정합니다.xxx.xxx.xxx.xxx인 컴퓨터"가 아닌, "보안 그룹 A에 속한 모든 EC2 인스턴스"에게만 데이터베이스 접근을 허용하게 됩니다. 이는 훨씬 더 유연하고 안전한 AWS 네이티브 방식의 연결 방법입니다.EC2 준비: EC2 인스턴스에 접속하여 Java(JDK), Git 등 애플리케이션 실행에 필요한 런타임을 설치합니다.
프로젝트 클론: git clone 명령어로 EC2 인스턴스에 소스 코드를 내려받습니다.
데이터베이스 연결 정보 설정 (환경 변수):
application.yml 파일에 RDS 엔드포인트와 비밀번호를 직접 하드코딩하는 것. (보안에 매우 취약)# EC2 터미널에서 환경 변수 설정
export DB_HOST=your-rds-endpoint.rds.amazonaws.com
export DB_USERNAME=your_master_username
export DB_PASSWORD=your_master_passwordapplication.yml)은 ${DB_HOST}와 같은 구문을 사용하여 이 환경 변수들을 읽어오도록 설정합니다.애플리케이션 실행 및 테스트:
./gradlew build), JAR 파일을 실행합니다(java -jar ...).