Amazon RDS(Relational Database Service)

도은호·2025년 10월 8일
0

AWS SAA

목록 보기
25/46

RDS는 관리형 관계형 DB로, 백업/패치/모니터링/복구/확장/보안 같은 운영을 AWS가 맡고, 우리는 스키마·쿼리·성능 튜닝에 집중. Aurora는 별도 서비스(호환성은 MySQL/PostgreSQL)이며, 여기서는 RDS 표준 엔진 중심으로 정리


1) 지원 엔진 & 핵심 기능

  • Engine: MySQL / MariaDB / PostgreSQL / Oracle / SQL Server(엔진/에디션별 기능 상이)

  • 고가용성(HA)

    • Multi-AZ(표준): 동기식 스탠바이 1대, 장애 시 자동 Failover(DNS 엔드포인트 동일)
    • Multi-AZ DB Cluster(MySQL/PostgreSQL): 3개 노드(Writer 1 + Reader 2), 빠른 Failover, Reader Endpoint 제공
  • 확장성(Scale)

    • 수직 확장: Instance Class 변경
    • 수평 읽기 확장: Read Replica(동일/크로스 리전 지원; 엔진별 세부 차이)
    • Storage Auto Scaling: 임계 도달 시 스토리지 자동 증가
  • 백업/복구

    • Automated Backups(보존 0~35일) + PITR
    • Manual Snapshot(무기한 보관, 리전 간 복사 가능)
  • 보안

    • VPC/Security Group, KMS Encryption at rest, SSL/TLS in transit
    • IAM DB Authentication(MySQL/PostgreSQL) 등 엔진별 인증 옵션
  • 운영/관측

    • CloudWatch, Enhanced Monitoring, Performance Insights(Top waits/SQL 확인)
    • 로그: Slow Query/Error/General 등을 CloudWatch Logs로 내보내기

2) 스토리지/성능 설계

  • Storage Type

    • gp3(권장 기본): 용량과 IOPS/Throughput 독립 조절, 비용 효율
    • Provisioned IOPS(io1): 지연 민감·고IOPS 워크로드(OLTP)
    • (레거시 Magnetic은 신규에 비권장)
  • 용량/성능 팁

    • IOPS/MB/s 병목은 인스턴스·엔진 튜닝 영향도 큼(버퍼/워크메모리/체크포인트 등)
    • Storage Auto Scaling으로 디스크 Full 위험 완화
    • Read-heavyRead Replica(또는 Multi-AZ DB Cluster의 Reader)로 분산

3) HA/DR 패턴 이해

  • Multi-AZ(표준)

    • 동기식 스탠바이에 데이터 미러링 → 장애 시 자동 Failover
    • 엔드포인트 불변(애플리케이션 Connection string 변경 불필요)
  • Multi-AZ DB Cluster

    • Writer/Reader 분리 + Reader Endpoint 제공(읽기 분산 간편)
    • 장애 시 빠른 승격, MySQL/PostgreSQL 대상
  • Read Replica

    • 비동기 복제(읽기 전용 트래픽 분산/리포팅/ETL)
    • 필요 시 Promote해서 독립 Writer로 전환(계획적 마이그레이션/DR)
  • 크로스 리전

    • Cross-Region Read Replica로 원격 재해 복구(RPO/RTO 요구에 따라)

4) 백업/스냅샷/Blue-Green

  • Automated Backups + PITR: 보존 기간 내 원하는 시점으로 복구

  • DB Snapshot: 스냅샷 기반 리전 간 복사암호화 상태 승계

  • RDS Blue/Green Deployments(MySQL/MariaDB/PostgreSQL):

    • Blue(현재)Green(복제본) 동기화 → 빠른 전환으로 메이저 업그레이드/스키마 변경 리스크 완화

5) 보안/인증/네트워킹

  • 암호화: KMS로 at-rest, SSL/TLS로 in-transit

  • 인증

    • IAM DB Auth(MySQL/PostgreSQL): 임시 토큰으로 비밀번호 없는 접속
    • Kerberos/AD 통합 등 엔진 옵션(환경에 따라)
  • 네트워킹: Private Subnet 배치 권장, Security Group 최소 허용 원칙, 필요 시 Publicly Accessible(보안 주의)


6) 운영 필수 기능

  • Performance Insights: DB 대기 이벤트/SQL 식별(기본 무료 구간 + 장기 보존 유료)

  • Parameter Group / Option Group

    • Parameter Group: 엔진 설정(버퍼/워크메모리/Autovacuum 등)
    • Option Group: 엔진 부가 기능(예: Oracle 옵션, SQL Server 기능 등)
  • Maintenance Window: 소규모 패치/버전 업 일정화(즉시/예약)

  • RDS Proxy: 커넥션 풀/Failover 흡수(서버리스/람다·Burst 트래픽에 유리)


7) RDS vs Aurora 간단 분리

  • RDS(표준): 엔진 고유 기능/제약 유지, 스토리지 단일 볼륨, 운영 단순
  • Aurora: 분산 스토리지, 초고가용성·복구·복제 성능 강화, Aurora 전용 기능(서버리스 v2 등)
    → 기존 엔진 호환성/간단 운영이면 RDS, 극한의 HA/확장·글로벌이면 Aurora 검토

8) 시험/실무에서 자주 나오는 구분

  • Multi-AZ vs Read Replica

    • Multi-AZ: 가용성/Failover(동기식, 엔드포인트 동일)
    • Read Replica: 읽기 확장/리포팅/원격DR(비동기, 별도 엔드포인트)
  • 성능 병목 대처

    • IOPS/스토리지 ↑, Instance Class 상향, 쿼리/인덱스/Autovacuum 튜닝, PI 분석
    • Read 트래픽Replica/Reader로 분산
  • 보안 기본 3종: KMS 암호화, TLS, 프라이빗 서브넷 + SG 최소허용

  • 운영 자동화: Storage Auto Scaling, Performance Insights, Blue/Green, RDS Proxy


9) CLI 스니펫(필수 작업 모음)

# 1) DB 생성(예: MySQL, Multi-AZ, gp3)
aws rds create-db-instance \
  --db-instance-identifier mydb \
  --engine mysql --engine-version 8.0 \
  --db-instance-class db.m6g.large \
  --allocated-storage 100 \
  --storage-type gp3 --iops 6000 --max-allocated-storage 1000 \
  --master-username admin --master-user-password '*****' \
  --multi-az \
  --vpc-security-group-ids sg-xxxx \
  --db-subnet-group-name my-subnet-group \
  --backup-retention-period 7 \
  --enable-performance-insights

# 2) Read Replica 생성(동일 리전 예시)
aws rds create-db-instance-read-replica \
  --db-instance-identifier mydb-replica-1 \
  --source-db-instance-identifier mydb

# 3) 스냅샷 생성/복원
aws rds create-db-snapshot --db-snapshot-identifier snap-20251008 --db-instance-identifier mydb
aws rds restore-db-instance-from-db-snapshot \
  --db-instance-identifier mydb-restore \
  --db-snapshot-identifier snap-20251008

# 4) 강제 Failover(다중 AZ에서 재부팅+전환)
aws rds reboot-db-instance --db-instance-identifier mydb --force-failover

주의: 파라미터/옵션은 엔진/버전/리전에 따라 다릅니다. 운영 전 테스트 계정에서 검증하세요.


10) 튜닝·트러블슈팅 체크리스트

  • 연결/큐 지연: Performance Insights로 상위 대기/SQL 확인 → 인덱스/쿼리/파라미터 조정
  • 스토리지 압박: Storage Auto Scaling 설정, 오래된 로그/아카이브 전략
  • 스파이크: RDS Proxy로 커넥션 폭주 흡수, ASG/캐시로 앱단 완충
  • Failover 테스트: 정기적으로 reboot with failover 리허설, 클라이언트 재시도 로직 확인
  • 백업 복구 훈련: PITR/스냅샷 복구 절차 문서화(복구 시간 목표 RTO 점검)

11) 비용 포인트

  • Compute(Instance 시간), Storage(GB-월), IOPS/Throughput, Backup 저장, Cross-Region 전송
  • Performance Insights 장기 보존, RDS Proxy, 스냅샷 복사 등은 별도 과금
  • gp3로 시작해 필요 IOPS만 증설이 비용 최적화의 정석

12) 요약

  • RDS = 관리형 RDB: Multi-AZ(HA), 백업/PITR, 자동 패치, 모니터링, 보안
  • 기본은 gp3 + Multi-AZ + Performance Insights + Storage Auto Scaling
  • 읽기 확장/DRRead Replica/Reader, 무중단 업그레이드Blue/Green
  • 보안은 KMS + TLS + 프라이빗 서브넷/SG 최소허용으로 표준화
profile
`•.¸¸.•´´¯`••._.• 🎀 𝒸𝓇𝒶𝓏𝓎 𝓅𝓈𝓎𝒸𝒽💞𝓅𝒶𝓉𝒽 🎀 •._.••`¯´´•.¸¸.•`

0개의 댓글