[RDS] Multi-AZ 환경의 RDS 생성 가이드
Prerequisite
- Multi-AZ 환경의 RDS인스턴스를 위한 최소 2개 이상의 가용영역에 서브넷이 각각 있어야 합니다.
- Multi-AZ 환경의 RDS클러스터를 위한 최소 3개 이상의 가용영역에 서브넷이 각각 있어야 합니다.
- 사용할 엔진(MySQL, PostgreSQL, MariaDB, Oracle, SQL Server)과 정확한 버전 호환성을 확인해야 합니다.
Process
1. 서브넷 그룹 생성
RDS를 배포할 서브넷을 지정하는 그룹을 생성합니다.
- AWS 콘솔에서 RDS 서비스로 이동합니다

- 서브넷 그룹 선택합니다.

- “DB 서브넷 그룹 생성” 클릭합니다

- 이름, 설명 ,VPC 입력합니다.

- 가용영역, 서브넷 선택합니다
- Multi-AZ RDS 인스턴스일 경우 2개의 서로 다른 가용영역에서 2개의 서브넷을 선택해야합니다.

- Multi-AZ RDS 클러스터일 경우 3개의 서로 다른 가용영역에서 3개의 서브넷을 선택해야합니다.

- Multi-AZ RDS 인스턴스일 경우 2개의 서로 다른 가용영역에서 2개의 서브넷을 선택해야합니다.
2. RDS 보안 그룹 생성
RDS를 접속을 허용/차단 할 보안 그룹을 설정합니다.
- AWS 콘솔에서 EC2를 선택합니다.

- 네트워크 및 보안/보안 그룹 선택합니다
-
“보안 그룹 생성” 클릭합니다
-
보안 그룹 이름, 설명, RDS를 배포할 VPC를 선택합니다.

-
인바운드 규칙 추가
-유형 (Type): 사용자 지정 TCP (Custom TCP Rule)
-포트 범위 (Port Range):
MySQL인 경우: 3306

PostgreSQL인 경우: 5432

-소스 (Source)
- 운영 서버가 속한 보안 그룹 ID 또는 VPC CIDR
-
3. RDS 생성
Multi-AZ 환경의 RDS를 생성합니다.
-
AWS 콘솔에서 RDS 서비스로 이동합니다
.
-
리소스 대시보드 에서 "DB 인스턴스"를 선택합니다.

-
오른쪽 상단에 "데이터 베이스 생성"을 클릭합니다

-
생성 방식은 "전체 구성"을 선택 후 "엔진 옵션"은 사용할 엔진(MySQL, PostgreSQL 등) 선택합니다.

-
엔진 유형에 맞는 호환되는 엔진 버전을 선택합니다

-
템플릿: [프로덕션 (Production)] or [개발/테스트] 중에 알맞는 템플릿을 선택합니다.

-
Multi-AZ RDS 클러스터일 배포와 인스턴스 배포 중 하나를 선택 합니다.

다중 AZ DB 클러스터: 읽기 가능한 스탠바이 인스턴스 2개 포함 (3개 AZ 필요).
다중 AZ DB 인스턴스: 대기 인스턴스 1개 생성 (2개 AZ 필요).
한눈에 비교하기
구분 다중 AZ DB 인스턴스 (Instance) 다중 AZ DB 클러스터 (Cluster) 구성 기본(Primary) 1 + 대기(Standby) 1 기본(Primary) 1 + 읽기 가능한 대기 2 최소 AZ 개수 2개 3개 읽기 확장성 대기 인스턴스로 읽기 불가 대기 인스턴스에서 읽기 가능 장애 조치 속도 보통 (약 60~120초) 매우 빠름 (대개 35초 미만) 복제 방식 동기(Synchronous) 복제 반동기(Semi-synchronous) 복제 -
설정을 구성합니다

-
DB인스턴스 식별자를 입력합니다.(AWS 리전에서 모든 DB 인스턴스에 대해 고유해야 합니다.)
-
DB 마스터 사용자 이름 설정[default MySQL : admin, default Postgre : postgre]
-
자격 증명 관리 : '자체 관리' 선택
-
마스터 암호/확인 : 마스터 사용자의 암호를 정의하는 문자열을 지정합니다.
최소 제약 조건: 8자 이상의 인쇄 가능한 ASCII 문자를 사용합니다. / ' " @ 기호는 포함할 수 없습니다. -
인스턴스 구성을 설정합니다.

- M: 범용 (General Purpose)
- R: 메모리 최적화 (Memory Optimized)
- X: 하이 메모리 (High Memory)
- T: 버스터블 (Burstable)
ex )
db.m5.large: DB의 M(범용)5세대의 large(하드웨어 리소스 크기) 인스턴스비용 한눈에 보기
패밀리 유형 CPU : RAM 비율 주요 용도 비용 수준 T (Burstable) 버스터블 1 : 2~4 개발/테스트, 소규모 토이 프로젝트 매우 저렴 ($) M (General) 범용 1 : 4 일반적인 운영 서버 (균형 잡힌 사양) 표준 ($$) R (Memory) 메모리 최적화 1 : 8 운영 환경 권장 (대량의 데이터 캐싱) 높음 ($$$) X (High Mem) 하이 메모리 1 : 16~32 초대형 데이터베이스, 인메모리 연산 매우 높음 ($$$$) 📉 T 시리즈 (db.t3, db.t4g)특징: CPU 사용량이 낮을 때 크레딧을 모았다가, 필요할 때 몰아서 쓰는 방식입니다.비용: M 시리즈 대비 약 50% 이상 저렴합니다.주의: 크레딧을 모두 소모하면 DB 성능이 급격히 저하되므로, 운영 서버에는 권장하지 않습니다.⚖️ M 시리즈 (db.m6g, db.m7g)특징: 컴퓨팅과 메모리 성능이 균형을 이룹니다.비용: 표준 기준점입니다.추천: CPU와 메모리를 골고루 사용하는 일반적인 웹 서비스에 적합합니다.🚀 R 시리즈 (db.r6g, db.r7g) - 가장 많이 쓰임특징: M 시리즈와 동일한 CPU 개수일 때 메모리가 2배 더 많습니다.비용: M 시리즈보다 약 20~30% 비싸지만, 메모리 당 단가는 더 저렴합니다.추천: 데이터베이스는 메모리가 많을수록 디스크 I/O가 줄어 성능이 비약적으로 좋아집니다. 실제 운영 환경에서 가장 선호되는 타입입니다.
-
-
스토리지 선택합니다.
유형-
범용 SSD(gp3) : 스토리지 크기에 따르지 않는 범용적 성능 결정
-
프로비저닝된 IOPS SSD(io1,2) : 일관되고 낮은 지연 시간을 제공하며, 사용자가 원하는 IOPS를 미리 지정하여 할당, IOPS를 사용자가 지정해야합니다.
IOPS: 초당 입출력 처리 횟수한눈에 보기
타입 명칭 IOPS 산정 방식 (성능 논리) 주요 특징 추천 용도 gp3 범용 SSD 용량과 독립적 (3,000 기본 제공) 최소 비용으로 고성능 확보 가능 대부분의 운영/개발 환경 (권장) io1/io2 프로비저닝 SSD 사용자 지정 (비례 관계 없음) 극강의 일관된 성능과 낮은 지연 시간 고성능, 대규모 트래픽, 금융권 ✅ 가장 권장하는 선택: 범용 SSD (gp3)
-
-
연결을 구성합니다.

-
컴퓨팅 리소스
EC2 컴퓨팅 리소스에 연결 안 함 : RDS 인스턴스의 네트워크 설정(VPC, 서브넷 그룹, 보안 그룹)을 수동으로 직접 지정하겠다는 의미입니다.
EC2 컴퓨팅 리소스에 연결 : 특정 EC2 인스턴스와 이 RDS 인스턴스를 쉽게 연결하도록 AWS가 네트워크 설정을 자동 구성을 지원해 줍니다.
-
VPC 선택 : 미리 생성해둔 배포할 VPC를 선택합니다

❗: DB를 생성한 VPC 변경 불가
-
DB 서브넷 그룹 선택 : [Process 1]에서 생성한 DB 서브넷 그룹을 선택합니다.

-
퍼블릭 액세스
- 예(yes) : RDS에 퍼블릭 IP가 할당 됩니다. 보안그룹을 통해 업격한 접근 제한이 권고됩니다.
- 아니요(no) : RDS에 프라이빗 IP만 할당되며, VPC 내부의 리소스만 접근할 수 있습니다. (권장)
-
보안 그룹 : "기존 항목 선택" 후 [Process 2] 에서 생성한 보안 그룹을 선택합니다

-
인증 기관은 "기본 값"을 선택합니다
-
-
데이터베이스 인증을 설정합니다

-
암호 인증 : DB 자체 내부에 저장된 사용자 이름과 암호를 사용하여 인증합니다.
-
암호 및 IAM 데이터베이스 인증 :기존의 암호 인증 외에 AWS IAM서비스 인증을 추가합니다.
-
암호 및 Kerberos 인증 : 기존 암호 인증 외에 Kerberos 프로토콜을 사용합니다.
💡 전문가의 결정 가이드
초기 단계 또는 일반 웹 서비스: [암호 인증]을 선택하세요. 가장 쉽고 호환성이 좋습니다.
보안이 엄격한 금융/정부 프로젝트: [IAM 인증]을 검토하세요. 암호 노출 위험을 원천 차단할 수 있습니다.
사내 인사 시스템과 연동이 필요한 경우: [Kerberos 인증]을 선택하여 AD 계정으로 통합 관리하세요.
-
-
모니터링

-
Database Insights: 표준(Standard) 선택.
💡고급/표준 차이는?
고급 : 기본적으로 15개월의 성능 기록을 유지플릿 수준 모니터링을 지원하며 장기간 성능 분석 필요시 선택합니다.
표준 : 기본적으로 7일간의 성능 기록을 유지하고합니다.
-
보존기간 : 7일
-
KMS((Key Management Service Key) 키 설정 : DB를 암호화 하는데 사용되는 키를 선택합니다. 드롭다운을 통해 키를 선택하거나
(defalut) aws/rds를 선택하여 기본 관리형 키를 선택합니다.여기서 잠깐! 🔐 자격 증명 관리 (암호 저장 방식)란?
-
데이터베이스의 마스터 암호를 어디에 저장하고 관리할지 결정합니다.
-
| 구분 | 자체 관리 (Self-managed) | AWS Secrets Manager |
| 방식 | 사용자가 직접 암호를 생성하고 기억함 | AWS 서비스가 암호를 안전하게 저장/관리 |
| 비용 | 무료 | 유료 (보관료 및 API 호출 비용 발생) |
| 장점 | 추가 비용이 없고 구조가 단순함 | 자동 암호 교체(Rotation) 지원, 보안성 우수 |
| 단점 | 암호를 분실하거나 코드에 노출될 위험 | 설정이 추가로 필요함 (IAM 권한 등) |
-
추가 모니터링을 선택합니다.
-
Enhanced monitoring 활성화 : 'OFF', 기본값은 비활성화(Off)입니다.
활성시 장점 : OS수준의 지표를 세부적으로 수집하여, CPU 사용원인을 정확히 판단합니다.(프로덕션 권장) -
로그 내보내기 : CloudWatch Logs로 게시할 로그 유형을 선택합니다.
💡 전문가의 결정 가이드
설정 항목 추천 값 추천 이유 Enhanced Monitoring OFF 기본 모니터링(CloudWatch)만으로도 일반적인 CPU 사용량 및 가용 메모리 확인 가능,비용 최적화 모니터링 역할 Default (자동 생성) 기존 역할이 없다면 RDS가 권한을 가진 역할을 자동으로 만들게 두면 됩니다.
-
-
추가 구성을 선택합니다

- 초기 데이터 베이스 이름 : 초기 DB 이름을 지정합니다
- DB 파라미터 그룹 : DB 인스턴스에 적용할 구성 설정을 정의하는 DB 파라미터 그룹을 선택합니다.
- default : 커스텀 되지 않은 기본 파라미터 그룹
- custom : 생성한 파라미터 그룹 선택
- AWS 콘솔에서 RDS 접속
- 파라미터 그룹 선택

- “파리미터 그룹 생성” 클릭

- 그룹 이름, 설명,엔진유형,파리미터 그룹 패밀리,유형(인스턴스 : DB 파라미터 그룹, 클러스터 : DB 클러스터 파라미터 그룹) 지정

-
백업설정을 합니다

-
자동 백업 활성화 : 'ON', DB 특정 시점 복구를 위해 시스템이 일일 스냅샷을 자동으로 생성합니다
-
백업 보존 기간 : '7일', 자동으로 백업이 유지되는 일수를 지정합니다. (0~35일)
-
백업 기간 : '기간 선택', 04:00, 1시간, RDS가 매일 자동 백업을 수행하는 시간 범위 유저의 읽기/쓰기가 적은 새벽에 지정합니다.
-
백업 태그 : '스냅샷으로 복사', 백업 태그 설정은 소스 DB 인스턴스에 설정된 태그(예:
Service: Payment,Env: Production)를 생성되는 백업 파일에도 그대로 복제할지 결정하는 옵션입니다. -
백업 복제 :'OFF', 동일 리전 내에 자동 백업이 생성되므로, DR(재해 복구) 구축이 필수적인 특수 상황이 아니라면 다른 리전으로 백업을 복제할 필요가 없습니다.
-
암호화 활성화 :'ON', 백업 스냅샷을 AWS KMS를 이용하여 암호화 여부를 설정합니다.
-
AWS KMS 키 유지 관리: '기본 키(aws/rds)', 데이터베이스 및 스냅샷 암호화에 사용할 키를 선택합니다.
-
자동 마이너 버전 업그레이드: 'OFF',자동 업그레이드 과정에서 DB 인스턴스가 재시작될 수 있으며, 이는 서비스 중단으로 이어질 수 있습니다.
-
유지 관리 기간: '기간 선택','요일 무관', 05:00, 1시간, 시스템 패치나 업데이트 작업이 진행될 시간대를 지정하며, 서비스 영향이 적은 새벽시간대 설정을 권장합니다.
-
삭제 방지 활성화 :'ON', DB를 실수로 삭제되는 것을 방지합니다. DB 삭제가 필요할시 OFF 설정 후 삭제가 가능합니다.
-
💡 핵심 요약 (Quick Tip)
"운영 서버라면 무조건 '삭제 방지'와 '암호화'를 켜고, 백업 시간은 한국 시간 기준 새벽(KST = UTC + 9)으로 계산해서 입력하세요."