AWS DVA 데이터베이스 — RDS·Aurora·DynamoDB

2026-05-03확률과 통계 마스터 노트

AWS DVA-C02 마스터 노트 시리즈 4편. RDS 6엔진과 Read Replica vs Multi-AZ 차이, Aurora 5리전 글로벌 DB와 6복사본, ElastiCache Redis vs Memcached 결정적 차이, DynamoDB 파티션 키 설계와 GSI vs LSI, DAX 캐싱·Streams·TTL까지 자격증 시험 단골 토픽을 한 흐름으로.

이 글은 AWS DVA-C02 마스터 노트 시리즈의 네 번째 편입니다. 3편(스토리지)에서 정적 데이터를 잡았다면, 이번엔 동적 데이터 — RDS·Aurora·ElastiCache·DynamoDB 4가지.

DynamoDB는 자격증 시험 단골 중의 단골이에요. 파티션 키 설계·GSI·DAX·Streams 모두 시나리오 문제로 자주 등장.

RDS — 관계형 DB

회사 비유 — AWS가 운영을 대신 봐 주는 관계형 DB. 백업·패치·HA를 AWS가 처리.

6 엔진

엔진 비고
MySQL 가장 많이 쓰임
PostgreSQL 고급 기능·표준
MariaDB MySQL 포크
Oracle 라이선스 BYOL
SQL Server 라이선스 BYOL
Aurora AWS 자체 (별도 토픽)

Read Replica vs Multi-AZ — 결정적 차이

구분 Read Replica Multi-AZ
목적 읽기 확장 고가용성 (HA)
동기화 비동기 동기
사용 가능 읽기 쿼리 가능 쿼리 불가 (대기)
Failover X 자동 (장애 시 60-120초)
다른 리전 가능 같은 리전 다른 AZ
개수 최대 5 (DB당, MySQL/PostgreSQL) 1 (Standby)

여기서 정말 중요한 시험 함정 — Multi-AZ Standby는 쿼리 불가입니다. 단지 대기 상태로 장애 시 자동 전환. 읽기 부하 분산을 원하면 Read Replica.

비유로 잡기

  • Multi-AZ = "보험. 본사 건물 터지면 백업 사옥으로 즉시 전환. 평시엔 아무도 안 들어감."
  • Read Replica = "분점. 본사 + 분점 5개. 손님이 분점에서 책 읽기 가능 (수정은 본사만)."

백업

  • 자동 백업 — 일일 스냅샷 + 트랜잭션 로그, 1~35일 보존
  • 수동 스냅샷 — 사용자 트리거, 영구 보존

PITR (Point-In-Time Recovery) — 5분 단위 시점 복구.

보안

  • 저장 암호화 (KMS)
  • 전송 암호화 (SSL/TLS)
  • IAM 인증 (MySQL·PostgreSQL)
  • VPC Security Group

Aurora — AWS 자체 엔진

MySQL·PostgreSQL 호환. AWS가 클라우드 네이티브로 다시 짠 DB.

결정적 특징

  • 6 복사본 — 3개 AZ에 각 2개 (자동, 비용에 포함)
  • 15 Read Replica (RDS는 5)
  • 64TB 자동 스케일 (RDS는 사전 할당)
  • Failover < 30초 (Multi-AZ보다 빠름)
  • Backtrack — 백업 없이 시간 되돌리기

Aurora Serverless

자동 시작·정지·스케일. 사용한 만큼 과금. 워크로드 예측 어려울 때.

Aurora Global Database

여러 리전에 글로벌 DB.

Primary (서울) ←→ Replica (도쿄, 1초 지연)
                ←→ Replica (싱가포르)
                ←→ Replica (도쿄·런던 등 최대 5 리전)

리전 장애 시 다른 리전을 1분 안에 Primary로 승격.

여기서 정말 중요한 시험 함정 — Aurora의 6복사본 = "3개 도시에 두 부씩 보관". 한 AZ 통째로 날아가도 데이터 손실 X.

ElastiCache — 인메모리 캐시

회사 비유 — 공용 사물함. DB 부하를 줄이는 캐시.

Redis vs Memcached — 결정적 차이

구분 Redis Memcached
데이터 구조 풍부 (List·Set·Hash·Sorted Set) 단순 (key/value)
영속성 AOF·RDB 백업 가능 없음 (휘발)
복제·HA Multi-AZ + 자동 Failover 없음
Pub/Sub 지원 X
멀티 스레드 X (단일 스레드) O
적합 캐시·게임 리더보드·세션 단순 캐시

여기서 정말 중요한 시험 함정 — Redis = 영속성·HA, Memcached = 멀티 스레드 단순 캐시. 시나리오 키워드로 분기.

캐싱 전략

패턴 설명
Lazy Loading (Cache-Aside) 캐시 miss → DB 조회 → 캐시 저장
Write-Through 쓰기 시 DB와 캐시 동시
Write-Behind 캐시만 쓰고 DB는 비동기
# Lazy Loading 예시
def get_user(user_id):
    user = cache.get(user_id)
    if not user:
        user = db.query(user_id)
        cache.set(user_id, user, ttl=3600)
    return user

TTL (Time-To-Live)

캐시 자동 만료. Stale 데이터 방지.

DynamoDB — NoSQL의 핵심

회사 비유 — 자판기 단지. 사번(파티션 키) 입력하면 즉시 정보 나옴. 자동 분산·확장.

핵심 특징

  • 완전 관리형 NoSQL
  • 단일 자릿수 ms 지연
  • 무제한 확장 (자동)
  • HTTP API (다른 DB는 별도 프로토콜)

키 설계

Primary Key:
  - Partition Key (HASH)        — 필수
  - Sort Key (RANGE, 선택)      — 같은 파티션 내 정렬

여기서 정말 중요한 시험 함정 — 파티션 키는 균등 분산되어야 합니다. 한 키에 트래픽 몰리면 hot partition으로 throttle. 사용자 ID·UUID처럼 균등 분포한 값이 좋고, 날짜·"All" 같은 단일 값은 X.

용량 모드

모드 설명
Provisioned RCU·WCU 미리 예약, Auto Scaling 가능
On-Demand 사용량 기반, 트래픽 예측 어려울 때

RCU·WCU = Read·Write Capacity Units.

인덱스

종류 설명
GSI (Global Secondary Index) 다른 파티션 키 가능, 별도 RCU/WCU
LSI (Local Secondary Index) 같은 파티션 키, 다른 정렬 키, 테이블 생성 시만

여기서 시험 함정이 하나 있어요. LSI는 테이블 생성 시만 만들 수 있어요. 나중에 추가 X. GSI는 언제든.

DAX — DynamoDB 캐시

DynamoDB 전용 캐시. 마이크로초 지연. 코드 변경 없이 적용.

앱 → DAX (캐시) → DynamoDB

여기서 시험 함정이 하나 있어요. DAX는 DynamoDB 전용입니다. 다른 DB에 못 씀. ElastiCache와 차이.

Streams

테이블 변경(INSERT·UPDATE·DELETE)을 실시간 스트림.

DynamoDB Streams → Lambda → 다른 시스템 동기화

24시간 보존. CDC(Change Data Capture)에 사용.

TTL

특정 컬럼 시간 기준으로 자동 삭제.

expirationTime: 1735689600 (2025-01-01 00:00 UTC)
→ 시간 도달 시 자동 삭제

세션·임시 데이터에 유용.

Transactions

여러 항목·테이블 ACID 보장.

TransactWriteItems — 최대 25 항목
TransactGetItems — 최대 25 항목

여기서 시험 함정이 하나 있어요. 트랜잭션은 일반 쓰기 RCU/WCU의 2배 소비. 비용 인식.

DocumentDB

MongoDB 호환. 일반 시나리오엔 DynamoDB가 우선이지만 MongoDB 코드 그대로 쓰고 싶을 때.

Neptune

그래프 DB. 소셜 네트워크·추천·지식 그래프.

Redshift

데이터 웨어하우스 (OLAP). 분석용. OLTP는 RDS·Aurora.

RDS·Aurora·DynamoDB·ElastiCache 비교

구분 RDS Aurora DynamoDB ElastiCache
타입 RDB RDB (AWS) NoSQL 인메모리
스케일 수직 수직+수평 (Read) 수평 (자동) 수직+수평
HA Multi-AZ 6복사본 자동 자동 분산 Redis Multi-AZ
적합 표준 OLTP 클라우드 OLTP 단순 키 조회 캐시·세션

시험 직전 한 번 더 — 자주 헷갈리는 함정 모음

여기까지가 4편의 핵심입니다. 시험 직전 또는 실무에서 헷갈릴 때 다시 펼쳐 볼 수 있게 압축 노트로 마무리할게요.

  • RDS 6 엔진 — MySQL / PostgreSQL / MariaDB / Oracle / SQL Server / Aurora
  • Multi-AZ = 보험 (쿼리 불가) / Read Replica = 분점 (읽기 가능)
  • Multi-AZ 동기 / Read Replica 비동기
  • Read Replica 최대 5 (DB당)
  • 자동 백업 1~35일 / PITR 5분 단위
  • Aurora 6복사본 — 3 AZ × 2개 (3개 도시 두 부씩)
  • Aurora Read Replica 최대 15 / 64TB 자동 스케일
  • Aurora Failover < 30초 / Backtrack 백업 없이 되돌리기
  • Aurora Global DB — 5 리전 / 1초 지연 / 1분 Failover
  • ElastiCache Redis vs Memcached 결정적 차이
  • Redis = 영속성·HA·자료구조 / Memcached = 멀티 스레드·단순
  • 캐싱 전략 — Lazy Loading / Write-Through / Write-Behind
  • TTL = 자동 만료
  • DynamoDB = 완전 관리형 NoSQL, ms 지연, HTTP API
  • 파티션 키 = HASH (균등 분산 필수)
  • Hot Partition 방지 — 단일 값·날짜 X, UUID·user_id ◯
  • 용량 — Provisioned (예약) / On-Demand (사용량)
  • GSI = 다른 파티션 키 / LSI = 같은 파티션, 다른 정렬
  • LSI는 테이블 생성 시만 / GSI는 언제든
  • DAX = DynamoDB 전용 캐시, μs 지연
  • Streams = 변경 캡처, Lambda 트리거, 24h 보존
  • TTL = 특정 시간 도달 시 자동 삭제
  • Transactions — 25 항목, RCU/WCU 2배 비용
  • DocumentDB (MongoDB) / Neptune (그래프) / Redshift (DW·OLAP)

시리즈 다른 편

공식 문서: AWS DynamoDB Developer Guide에서 더 깊이 갈 수 있어요.

다음 글(5편)에서는 네트워킹 — VPC 서브넷·IGW·NAT, CloudFront 엣지 캐싱, API Gateway 인증·Throttling, Route 53 라우팅 정책 7종까지 풀어 갑니다.

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

error: Content is protected !!