## RDS를 특정 VPC의 서브넷에 배치하려면 서브넷 그룹을 먼저 생성해야 함 ##
* 퍼블릭일 때는 기본(Default) VPC와 서브넷을 쓰면 AWS가 대충 알아서 배치하지만, 프라이빗 환경은 그렇지 않음.
=> 내가 만든 프라이빗 전용 서브넷들을 하나로 묶어서 "여기에만 DB를 만들어라"라고 명시해 주는 'DB 서브넷 그룹' 단계가 필수
=> Multi-AZ를 위한 설정임!
* 공인 IP 자체가 존재하지 않으므로 반드시 Bastion Host(경유지)가 필요
## RDS DB 서브넷 그룹 핵심 정리 ##
1. IP 주소 가용성 확정 (IP Address Reservation)
- 목적: 장애 시 즉각적인 Failover를 위한 네트워크 주소 확보.
- 메커니즘: RDS는 장애 발생 시 다른 가용 영역(AZ)으로 이사를 가야 함. 이때 이사 갈 서브넷에 남는 IP가 없으면 DB가 생성되지 못함.
- 실무적 이유: 서브넷 그룹은 DB가 사용할 수 있는 IP 대역을 미리 **예약(Reservation)**하여, EC2 등 타 자원에 의한 IP 고갈로 인해 DB 복구가 실패하는 상황을 원천 차단함.
2. 가용 영역(AZ) 간의 로드맵 정의
- 목적: 고가용성(Multi-AZ) 구성의 물리적 범위 제한.
- 메커니즘: Multi-AZ 옵션 활성화 시, AWS는 서브넷 그룹에 포함된 AZ 리스트 내에서만 Standby 인스턴스를 생성함.
- 실무적 이유: 사전에 정의된 물리적 위치(AZ)를 강제함으로써, 인프라 관리자가 의도하지 않은 AZ에 DB가 배치되거나 라우팅이 꼬이는 설계를 방지함.
3. 네트워크 엔드포인트 유지 및 라우팅 보장
- 목적: 인스턴스 위치가 바뀌어도 접속 주소(Endpoint)를 유지.
- 메커니즘: Failover 시 DNS는 동일하지만 가리키는 Private IP는 변경됨.
- 실무적 이유: 바뀐 IP 역시 서브넷 그룹 내의 주소여야 하므로, 해당 VPC 내부 라우팅 테이블 및 보안 정책(Security Group)이 즉시 적용될 수 있는 상태를 보장함.
## 프라이빗 서브넷에 RDS 인스턴스 추가하기##
1. DB 서브넷 그룹 생성
RDS는 고가용성을 위해 최소 2개의 가용 영역에 걸쳐 있어야 함.
- AWS 콘솔: RDS > 서브넷 그룹 > DB 서브넷 그룹 생성.
- 설정: VPC를 선택하고, 프라이빗 서브넷들이 위치한 2개 이상의 가용 영역과 해당 서브넷 ID를 포함
2. RDS 보안 그룹(SG) 설정
프라이빗 서버가 RDS에 접속할 수 있도록 문을 열어줘야 함
- 인바운드 규칙 추가:
유형: MySQL/Aurora (또는 사용하는 DB 포트 3306 등).
소스: 프라이빗 서버가 사용 중인 보안 그룹 ID를 직접 입력하는 것이 가장 안전 (또는 프라이빗 서브넷 대역)
3. RDS 인스턴스 생성
표준 생성: 원하는 DB 엔진(MySQL, PostgreSQL 등) 선택.
- 연결 설정:
VPC: 현재 작업 중인 VPC 선택.
DB 서브넷 그룹: 1단계에서 만든 그룹 선택.
퍼블릭 액세스: '아니요' (프라이빗 서브넷에 두기 위함).
기존 VPC 보안 그룹: 2단계에서 설정한 보안 그룹 선택.


4. 프라이빗 서브넷의 RDS 접속방법
- 퍼블릭 서브넷에 위치했을 때와 달리 RDS 엔드포인트로 외부에서 접근 불가
=> Bastion Host를 사용하여 접근!

1) DBeaver 접속
2) RDS 의 connection 정보 입력

3) SSH 연결 설정
- Bastion Host EC2 생성 시 발급한 Private Key를 설정

4) Test Connection

## 실제 현업에서는 프라이빗 RDS를 어떻게 접근할까?
- 모든 개발자들이 SSH Key로 세팅하는 것은 비효율적일텐데, 프로젝트마다 다르겠지만 알아본 바를 정리해봄.
1. IAM + SSM 터널링 (표준)
방식: .pem 키 대신 사번 계정(IAM) 권한으로 보안 통로 구축
동작: AWS CLI로 내 PC와 RDS 사이의 가상 터널을 생성 (Port Forwarding)
실무: 디비버(DBeaver)에서 서버 주소를 localhost로 설정하여 접속
강점: SSH 포트(22번)를 닫아도 접속 가능, 모든 명령어 로그 기록
2. AWS Client VPN (네트워크 통합)
방식: VPN 접속을 통해 내 PC를 회사 내부 망에 합류
동작: 로그인 시 내 PC가 10.x.x.x 대역의 사설 IP를 할당받음
실무: 별도 터널링 없이 RDS의 **사설 주소(Private Endpoint)**로 직접 연결
강점: 실제 사내 랜선을 꽂은 것과 동일한 편리한 작업 환경 제공
3. DB 접근 제어 솔루션 (보안 강화)
방식: DB와 개발자 사이에 중계 플랫폼(QueryPie, Chakra 등) 배치
동작: 사내 포털 승인 후, 솔루션 에이전트를 통해서만 쿼리 실행
실무: 쿼리 로그 실시간 감시 및 개인정보 마스킹 자동 적용
강점: 금융권/대규모 커머스의 강력한 보안 감사(Audit) 대응용
'Cloud & Infra > AWS' 카테고리의 다른 글
| [AWS] Hybrid Cloud - AWS EC2 ↔ 온프레미스 DB 하이브리드 연결하기 (PoC) - 1. 이론/설계 (0) | 2026.03.04 |
|---|---|
| [AWS] ALB - 분산 환경에서의 로그 분석과 스티키 세션 (0) | 2026.03.02 |
| [AWS] 보안 그룹(SG) 및 네트워크 ACL(NACL) 비교 (0) | 2026.03.02 |
| [AWS] 인터넷 게이트웨이 / NAT 게이트웨이 / Bastion Host (0) | 2026.03.01 |
| [AWS] VPC / 서브넷 (0) | 2026.03.01 |
