본문으로 건너뛰기

[RDS] Multi-AZ 환경의 RDS 생성 가이드

Prerequisite

  • Multi-AZ 환경의 RDS인스턴스를 위한 최소 2개 이상의 가용영역에 서브넷이 각각 있어야 합니다.
  • Multi-AZ 환경의 RDS클러스터를 위한 최소 3개 이상의 가용영역에 서브넷이 각각 있어야 합니다.
  • 사용할 엔진(MySQL, PostgreSQL, MariaDB, Oracle, SQL Server)과 정확한 버전 호환성을 확인해야 합니다.

Process

1. 서브넷 그룹 생성

RDS를 배포할 서브넷을 지정하는 그룹을 생성합니다.

  1. AWS 콘솔에서 RDS 서비스로 이동합니다
  2. 서브넷 그룹 선택합니다.
  3. “DB 서브넷 그룹 생성” 클릭합니다
  4. 이름, 설명 ,VPC 입력합니다.
  5. 가용영역, 서브넷 선택합니다
    1. Multi-AZ RDS 인스턴스일 경우 2개의 서로 다른 가용영역에서 2개의 서브넷을 선택해야합니다.
    2. Multi-AZ RDS 클러스터일 경우 3개의 서로 다른 가용영역에서 3개의 서브넷을 선택해야합니다.

2. RDS 보안 그룹 생성

RDS를 접속을 허용/차단 할 보안 그룹을 설정합니다.

  1. AWS 콘솔에서 EC2를 선택합니다.
  2. 네트워크 및 보안/보안 그룹 선택합니다
    1. “보안 그룹 생성” 클릭합니다

    2. 보안 그룹 이름, 설명, RDS를 배포할 VPC를 선택합니다.

       

    3. 인바운드 규칙 추가

      -유형 (Type): 사용자 지정 TCP (Custom TCP Rule)

      -포트 범위 (Port Range):

             MySQL인 경우: 3306

             PostgreSQL인 경우: 5432

      -소스 (Source)

      1. 운영 서버가 속한 보안 그룹 ID 또는 VPC CIDR

3. RDS 생성

Multi-AZ 환경의 RDS를 생성합니다.

  1. AWS 콘솔에서 RDS 서비스로 이동합니다
    .

  2. 리소스 대시보드 에서 "DB 인스턴스"를 선택합니다.

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

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

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

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

  7. 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) 복제

     

  8. 설정을 구성합니다

    1. DB인스턴스 식별자를 입력합니다.(AWS 리전에서 모든 DB 인스턴스에 대해 고유해야 합니다.)

    2. DB 마스터 사용자 이름 설정[default MySQL : admin, default Postgre : postgre]

    3. 자격 증명 관리 : '자체 관리' 선택 

    4. 마스터 암호/확인 : 마스터 사용자의 암호를 정의하는 문자열을 지정합니다. 
      최소 제약 조건: 8자 이상의 인쇄 가능한 ASCII 문자를 사용합니다. / ' " @ 기호는 포함할 수 없습니다.

    5. 인스턴스 구성을 설정합니다.

      1. M: 범용 (General Purpose)
      2. R: 메모리 최적화 (Memory Optimized)
      3. X: 하이 메모리 (High Memory)
      4. 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가 줄어 성능이 비약적으로 좋아집니다. 실제 운영 환경에서 가장 선호되는 타입입니다.
  9. 스토리지 선택합니다.
    유형

    1. 범용 SSD(gp3) : 스토리지 크기에 따르지 않는 범용적 성능 결정

    2. 프로비저닝된 IOPS SSD(io1,2) : 일관되고 낮은 지연 시간을 제공하며, 사용자가 원하는 IOPS를 미리 지정하여 할당, IOPS를 사용자가 지정해야합니다.

      IOPS : 초당 입출력 처리 횟수

      한눈에 보기

      타입명칭IOPS 산정 방식 (성능 논리)주요 특징추천 용도
      gp3범용 SSD용량과 독립적 (3,000 기본 제공)최소 비용으로 고성능 확보 가능대부분의 운영/개발 환경 (권장)
      io1/io2프로비저닝 SSD사용자 지정 (비례 관계 없음)극강의 일관된 성능과 낮은 지연 시간고성능, 대규모 트래픽, 금융권

      가장 권장하는 선택: 범용 SSD (gp3)
       

  10. 연결을 구성합니다.

    1. 컴퓨팅 리소스

      EC2 컴퓨팅 리소스에 연결 안 함 : RDS 인스턴스의 네트워크 설정(VPC, 서브넷 그룹, 보안 그룹)을 수동으로 직접 지정하겠다는 의미입니다.

      EC2 컴퓨팅 리소스에 연결 : 특정 EC2 인스턴스와 이 RDS 인스턴스를 쉽게 연결하도록 AWS가 네트워크 설정을 자동 구성을 지원해 줍니다.

    2. VPC 선택 : 미리 생성해둔 배포할 VPC를 선택합니다

      ❗: DB를 생성한 VPC 변경 불가

    3. DB 서브넷 그룹 선택 : [Process 1]에서 생성한 DB 서브넷 그룹을 선택합니다.

    4. 퍼블릭 액세스

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

    6. 인증 기관은 "기본 값"을 선택합니다

  11. 데이터베이스 인증을 설정합니다

    1. 암호 인증 : DB 자체 내부에 저장된 사용자 이름과 암호를 사용하여 인증합니다.

    2. 암호 및 IAM 데이터베이스 인증 :기존의 암호 인증 외에 AWS IAM서비스 인증을 추가합니다.

    3. 암호 및 Kerberos 인증 : 기존 암호 인증 외에 Kerberos 프로토콜을 사용합니다.

      💡 전문가의 결정 가이드

      초기 단계 또는 일반 웹 서비스: [암호 인증]을 선택하세요. 가장 쉽고 호환성이 좋습니다.

      보안이 엄격한 금융/정부 프로젝트: [IAM 인증]을 검토하세요. 암호 노출 위험을 원천 차단할 수 있습니다.

      사내 인사 시스템과 연동이 필요한 경우: [Kerberos 인증]을 선택하여 AD 계정으로 통합 관리하세요.

       

  12. 모니터링

    1. Database Insights:  표준(Standard) 선택.

      💡고급/표준 차이는? 

      고급 : 기본적으로 15개월의 성능 기록을 유지플릿 수준 모니터링을 지원하며 장기간 성능 분석 필요시 선택합니다.

      표준 : 기본적으로 7일간의 성능 기록을 유지하고합니다.

    2. 보존기간 : 7일

    3. KMS((Key Management Service Key) 키 설정 : DB를 암호화 하는데 사용되는 키를 선택합니다. 드롭다운을 통해 키를 선택하거나 (defalut) aws/rds 를 선택하여 기본 관리형 키를 선택합니다.

      여기서 잠깐! 🔐 자격 증명 관리 (암호 저장 방식)란?

    4. 데이터베이스의 마스터 암호를 어디에 저장하고 관리할지 결정합니다.

구분자체 관리 (Self-managed)AWS Secrets Manager
방식사용자가 직접 암호를 생성하고 기억함AWS 서비스가 암호를 안전하게 저장/관리
비용무료유료 (보관료 및 API 호출 비용 발생)
장점추가 비용이 없고 구조가 단순함자동 암호 교체(Rotation) 지원, 보안성 우수
단점암호를 분실하거나 코드에 노출될 위험설정이 추가로 필요함 (IAM 권한 등)
  1. 추가 모니터링을 선택합니다.

    1. Enhanced monitoring 활성화 : 'OFF', 기본값은 비활성화(Off)입니다.
      활성시 장점 : OS수준의 지표를 세부적으로 수집하여, CPU 사용원인을 정확히 판단합니다.(프로덕션 권장)

    2. 로그 내보내기 : CloudWatch Logs로 게시할 로그 유형을 선택합니다.

      💡 전문가의 결정 가이드

      설정 항목추천 값추천 이유
      Enhanced MonitoringOFF기본 모니터링(CloudWatch)만으로도 일반적인 CPU 사용량 및 가용 메모리 확인 가능,비용 최적화
      모니터링 역할Default (자동 생성)기존 역할이 없다면 RDS가 권한을 가진 역할을 자동으로 만들게 두면 됩니다.
  2. 추가 구성을 선택합니다

    1. 초기 데이터 베이스 이름 : 초기 DB 이름을 지정합니다
    2. DB 파라미터 그룹 : DB 인스턴스에 적용할 구성 설정을 정의하는 DB 파라미터 그룹을 선택합니다.
      1. default : 커스텀 되지 않은 기본 파라미터 그룹
      2. custom : 생성한 파라미터 그룹 선택
        1. AWS 콘솔에서 RDS 접속
        2. 파라미터 그룹 선택
        3. “파리미터 그룹 생성” 클릭
        4. 그룹 이름, 설명,엔진유형,파리미터 그룹 패밀리,유형(인스턴스 : DB 파라미터 그룹, 클러스터 : DB 클러스터 파라미터 그룹) 지정
  3. 백업설정을 합니다

    1. 자동 백업 활성화 : 'ON', DB 특정 시점 복구를 위해 시스템이 일일 스냅샷을 자동으로 생성합니다

    2. 백업 보존 기간 : '7일', 자동으로 백업이 유지되는 일수를 지정합니다. (0~35일)

    3. 백업 기간 : '기간 선택', 04:00, 1시간, RDS가 매일 자동 백업을 수행하는 시간 범위 유저의 읽기/쓰기가 적은 새벽에 지정합니다.

    4. 백업 태그 : '스냅샷으로 복사', 백업 태그 설정은 소스 DB 인스턴스에 설정된 태그(예: Service: Payment, Env: Production)를 생성되는 백업 파일에도 그대로 복제할지 결정하는 옵션입니다.

    5. 백업 복제 :'OFF', 동일 리전 내에 자동 백업이 생성되므로, DR(재해 복구) 구축이 필수적인 특수 상황이 아니라면 다른 리전으로 백업을 복제할 필요가 없습니다.

    6. 암호화 활성화 :'ON', 백업 스냅샷을 AWS KMS를 이용하여 암호화 여부를 설정합니다.

    7. AWS KMS 키 유지 관리: '기본 키(aws/rds)',  데이터베이스 및 스냅샷 암호화에 사용할 키를 선택합니다.

    8. 자동 마이너 버전 업그레이드: 'OFF',자동 업그레이드 과정에서 DB 인스턴스가 재시작될 수 있으며, 이는 서비스 중단으로 이어질 수 있습니다.

    9. 유지 관리 기간: '기간 선택','요일 무관', 05:00, 1시간, 시스템 패치나 업데이트 작업이 진행될 시간대를 지정하며, 서비스 영향이 적은 새벽시간대 설정을 권장합니다.

    10. 삭제 방지 활성화 :'ON', DB를 실수로 삭제되는 것을 방지합니다. DB 삭제가 필요할시 OFF 설정 후 삭제가 가능합니다.  

💡 핵심 요약 (Quick Tip)

"운영 서버라면 무조건 '삭제 방지'와 '암호화'를 켜고, 백업 시간은 한국 시간 기준 새벽(KST = UTC + 9)으로 계산해서 입력하세요."


또 다른 질문이 있으십니까? 문의 등록