목차
1. RDS 개념과 특징
RDS(Relational Database Service)
- AWS에서 제공하는 관계형 데이터 베이스 서비스
- 직접 DB를 서버를 설치/운영하지 않고, 클라우드 제공업체(AWS, Azure, GCP 등)가 관리하는 DB 사용
- 특징:구분 전통적인 DB 관리 RDS (관리형 DB)
설치 사용자가 직접 설치 자동 설치 제공 보안 패치 수동 업데이트 필요 자동 업데이트 백업 직접 스크립트 작성 자동 백업 지원 모니터링 별도 툴 설치 필요 기본 제공 (CloudWatch 등) 확장성 서버 증설 직접 수행 클릭 몇 번으로 확장 가능
PostgreSQL RDS
- RDS는 다양한 엔진을 지원하지만, 실무에서는 PostgreSQL이 많이 사용됨
- 이유: 오픈소스, ACID 보장, JSON 타입 지원, 풍부한 함수와 확장성
- 장점:기능 설명
JSON 지원 문서형 DB처럼 JSON 저장 및 쿼리 가능 확장 기능 PostGIS, pg_stat_statements 등 확장 모듈 지원 표준 SQL 호환성 다양한 DBMS와 호환성 높음 강력한 트랜잭션 처리 금융, 공공 시스템 등에도 사용
2. RDS와 Spring Bot 연동
의존성 추가
// build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'org.postgresql:postgresql'
}
- Spring Boot에서 DB와 연동하려면 반드시 JPA와 DB Driver 의존성을 추가해야 함
- DB 드라이버를 여러 개 추가하지 말고, 실제 사용할 DB 드라이버만 추가하는 것이 좋음
데이터소스 설정
: DB 연결 정보는 application.yml 또는 application.properties 파일에 설정
# application-prod.yml 예시
spring:
datasource:
url: ${DATASOURCE_URL}
username: ${DATASOURCE_USERNAME}
password: ${DATASOURCE_PASSWORD}
driver-class-name: org.postgresql.Driver
# .env 파일에 URL, USERNAME, PASSWORD 작성
# RDS 설정
DATASOURCE_URL=jdbc:postgresql:{RDS 인스턴스 주소}:35432/test
DATASOURCE_USERNAME=이름
DATASOURCE_PASSWORD=비밀번호
- 포트번호, DB 이름, 사용자가 일치하지 않으면 연결 오류 발생
- DB 인스턴스 보안 그룹에서 애플리케이션 서버 IP를 허용했는지 반드시 확인
JPA 기본 설정
# application.yml 예시
spring:
jpa:
hibernate:
ddl-auto: update # (create, update, validate, none)
show-sql: true # 실행되는 SQL을 콘솔에 출력
properties:
hibernate:
format_sql: true # SQL을 보기 좋게 포맷팅
- ddl-auto: update는 개발 단계에서만 사용, 운영 환경에서는 스키마를 수동으로 관리하는 것이 안전함
- show-sql: true는 학습 시 SQL 확인에 유용하지만, 운영 환경에서는 로그가 과도하게 쌓일 수 있음
728x90
'DevOps & Cloud > AWS' 카테고리의 다른 글
| ECS(Fargate)와 ElastiCache Redis 연결 시 고려사항 (0) | 2025.12.11 |
|---|---|
| AWS ElastiCache (0) | 2025.12.10 |
| S3 버킷 정책(get요청만 public으로 전환하는 법) (0) | 2025.11.27 |
| [AWS] ECS (1) | 2025.08.31 |
| [AWS] AWS 핵심 개념과 보안 (2) | 2025.08.29 |