home
SAA-C03

[database] 데이터베이스 한눈에

관계형? NoSQL? 캐시? 데이터의 성격에 따라 정답이 달라지는 DB 선택, 그 큰 그림을 먼저 잡습니다.

이 노트는 어떤 DB 서비스를 고를지를 나누는 허브다. 각 서비스 상세는 개별 노트로 연결한다. rds · aurora · dynamodb · elasticache · dms

One-Line Summary

데이터베이스 문제는 먼저 관계형인지 · NoSQL인지 · 캐시인지 · 분석용인지, 그리고 고가용성(HA) / 읽기 확장 / 연결 관리 / 마이그레이션 중 무엇을 묻는지로 나누면 풀린다.

Abbreviations

약어풀네임의미
RDSRelational Database ServiceAWS 관리형 관계형 DB
AuroraAmazon AuroraAWS 자체 MySQL/PostgreSQL 호환 고성능 관계형 DB
DynamoDBAmazon DynamoDB서버리스 NoSQL key-value/document DB
DAXDynamoDB AcceleratorDynamoDB 전용 인메모리 캐시
DMSDatabase Migration ServiceDB 마이그레이션/복제 서비스
OLTPOnline Transaction Processing실시간 트랜잭션 처리
OLAPOnline Analytical Processing분석 처리(웨어하우스)
HAHigh Availability고가용성
DRDisaster Recovery재해 복구

Big Picture — 요구사항 → 서비스

요구사항먼저 떠올릴 것상세
SQL·트랜잭션·기존 MySQL/PostgreSQL/Oracle/SQL ServerAmazon RDSrds
고성능·고확장 MySQL/PostgreSQL 호환, 글로벌 DRAmazon Auroraaurora
key-value/document, 서버리스, 초대규모 확장Amazon DynamoDBdynamodb
DynamoDB 읽기를 microsecond로DAXdynamodb
자주 조회되는 데이터를 인메모리 캐시로Amazon ElastiCacheelasticache
데이터 웨어하우스·BI·OLAPAmazon Redshiftanalytics/redshift
DB를 최소 다운타임으로 이전AWS DMSdms

결정축 1 — 관계형 vs NoSQL vs 캐시 vs 분석

성격언제서비스
관계형(OLTP)정규화 스키마·JOIN·트랜잭션·SQLRDS / Aurora
NoSQLkey-value/document·유연 스키마·초대규모·서버리스DynamoDB
인메모리 캐시반복 조회를 microsecond~ms로, 세션/리더보드ElastiCache / DAX
분석(OLAP)대량 이력 데이터를 복잡·집계 쿼리로Redshift

함정: OLTP를 Redshift로(반대), JOIN 많은 관계형을 DynamoDB로(반대). Redshift는 분석, DynamoDB는 key-value 패턴.

결정축 2 — 관계형 안에서 HA vs 읽기확장 vs 연결관리

관계형 DB 문제의 대부분은 이 세 가지 중 무엇을 요구하는지로 갈린다.

요구정답
AZ 장애에도 살아있어야(HA)Multi-AZ(동기 standby, 자동 failover)standby는 대기용(일반형은 읽기 처리 안 함)
읽기 부하 분산·확장Read Replica(비동기, 읽기 전용)리포팅·읽기 offload
다른 리전에 읽기/DRCross-Region Read Replica / Aurora Global Database지역 지연 감소 + 리전 DR
연결 수 폭증(특히 Lambda)RDS Proxy(연결 풀링)데이터 캐시가 아니라 connection 관리
안전한 버전/스키마 변경Blue/Green Deploymentstaging에서 검증 후 <1분 전환

상세·수치는 rds. Multi-AZ=HA, Read Replica=읽기확장이 가장 자주 나오는 구분이다.

결정축 3 — 캐시/연결 3형제 (자주 헷갈림)

구분DAXElastiCacheRDS Proxy
대상DynamoDB 전용범용(RDS/API 등)RDS/Aurora 연결
목적DynamoDB 읽기 캐시데이터/세션 캐시connection 풀링·관리
캐시하는 것DynamoDB item 읽기자주 조회 데이터·세션데이터 아님, 연결
트리거 키워드DynamoDB, microsecondcache, session, leaderboardLambda, connection storm

DAX=DynamoDB 캐시, ElastiCache=범용 캐시, RDS Proxy=연결 관리(캐시 아님). 상세: dynamodb · elasticache · rds.

Common Wrong Directions

오답 방향왜 부족한가
Multi-AZ를 읽기 성능 향상용으로일반 Multi-AZ standby는 읽기 처리 안 함 → 읽기는 Read Replica
Read Replica를 HA failover 정답으로주 목적은 읽기 확장 → HA는 Multi-AZ
RDS Proxy를 캐시로 이해연결 풀링임 → 데이터 캐시는 ElastiCache
DAX를 RDS 캐시로DAX는 DynamoDB 전용
OLTP를 Redshift로Redshift는 OLAP → 트랜잭션은 RDS/Aurora
JOIN·복잡 SQL을 DynamoDB로관계형이면 RDS/Aurora
DB 이전을 DataSync로DB 마이그레이션은 DMS(DataSync는 파일/객체)

Exam Triggers

문제에서 이런 표현이 나오면떠올릴 것
"SQL, relational, transactions"RDS / Aurora
"high availability, automatic failover"RDS Multi-AZ
"read-heavy, offload reads"Read Replica
"cross-region DR for relational DB"Cross-Region Read Replica / Aurora Global Database
"too many DB connections from Lambda"RDS Proxy
"safe DB upgrade, minimal downtime"RDS Blue/Green
"MySQL/PostgreSQL compatible, high performance"Aurora
"serverless NoSQL key-value"DynamoDB
"DynamoDB microsecond reads"DAX
"cache / session store / leaderboard"ElastiCache
"migrate database with minimal downtime"DMS

Memory Sentence

DB는 관계형(RDS/Aurora)·NoSQL(DynamoDB)·캐시(ElastiCache/DAX)·분석(Redshift)·이전(DMS)로 나뉜다. 관계형에서 HA는 Multi-AZ·읽기확장은 Read Replica·연결관리는 RDS Proxy·안전변경은 Blue/Green. 고성능·글로벌이면 Aurora, 서버리스 대규모 key-value면 DynamoDB. DAX=DynamoDB 캐시, ElastiCache=범용 캐시.

Notes To Expand

References

댓글

아직 댓글이 없습니다.