📚 AWS 기타 데이터베이스 서비스
1️. DynamoDB의 본질
DynamoDB는 Key 기반 접근을 전제로 설계된 완전관리형 NoSQL 데이터베이스이다.
- 서버 관리 없음
- 자동 확장
- 단일 자릿수 ms 지연 시간
- 대규모 트래픽 처리에 최적화
핵심 전제는 단 하나다.
“어떻게 조회할 것인가가 곧 테이블 설계다”
2️. 데이터 모델과 설계의 핵심
기본 구성
- Table
- Item
- Attribute
가장 중요한 요소
- Primary Key
- Partition Key
- (선택) Sort Key
Partition Key는:
- 데이터 분산
- 성능
- 비용
을 동시에 결정한다.
👉 DynamoDB에서 잘못된 Primary Key 설계는
성능 저하 + 비용 폭증으로 직결된다.
3️. 읽기 / 쓰기 모델의 특징
쓰기
- PutItem: 전체 Item 저장(덮어쓰기)
- UpdateItem: 일부 Attribute 수정
- DeleteItem: 단건 삭제
- BatchWrite: 최대 25개, 원자성 없음
읽기
- GetItem: 단건 조회 (가장 빠름)
- Query: 권장 방식
- Scan: 전체 탐색 (비권장)
DynamoDB는 Scan을 쓰지 않도록 설계하는 DB다.
4️. 처리량과 일관성 모델
처리량 단위
- RCU: 읽기
- WCU: 쓰기
Item 크기 기준으로 올림 계산되므로
Item 크기 관리 = 비용 관리다.
일관성
- Eventually Consistent (기본, 저비용)
- Strongly Consistent (정합성 우선, 비용 2배)
5️. 인덱스 = 접근 패턴 확장 수단
DynamoDB 인덱스는 조회 패턴을 위한 구조다.
LSI
- Partition Key 동일
- Sort Key만 변경
- Strong Consistency 가능
- 테이블 생성 시에만 생성 가능
GSI
- Partition / Sort Key 모두 자유
- 생성·삭제 자유
- Eventually Consistent만 가능
- 별도 RCU/WCU 사용
👉 인덱스는 강력하지만
쓰기가 늘어날수록 비용도 같이 증가한다.
6️. 운영을 위한 핵심 기능들
TTL
- 자동 데이터 만료
- 세션, 로그, 임시 데이터 관리
Backup & PITR
- On-Demand Backup: 수동 전체 백업
- PITR: 최대 35일, 초 단위 복구
Streams
- INSERT / MODIFY / REMOVE 이벤트 캡처
- Lambda, Kinesis 등과 연계
- 이벤트 기반 아키텍처의 핵심
Global Tables
- 멀티 리전 Active-Active
- 글로벌 서비스 고가용성 구성
7️. DynamoDB Demo가 보여주는 메시지
Demo의 핵심은 기능이 아니라 사고방식이다.
- 단순 Key 기반 조회는 매우 빠르다
- Scan은 구조 이해용이지 실서비스용이 아니다
- DynamoDB는 단독이 아니라:
- Application Server와 함께 사용할 때 진가를 발휘한다
8️. MemoryDB와 DynamoDB의 관계
DynamoDB가 “확장성과 안정성”이라면
MemoryDB는 “속도와 실시간성”이다.
MemoryDB
- Redis 기반
- 인메모리
- 마이크로초 단위 응답
- 내구성 보장
👉 캐시가 아니라
실시간 핵심 데이터 저장소로 사용 가능
9️. Redshift의 위치
Redshift는 DynamoDB와 완전히 다른 영역이다.
- 목적: 분석(OLAP)
- 컬럼 기반 저장
- MPP 구조
- S3 연동 대량 데이터 적재
👉 운영 DB ❌
👉 로그·통계·집계 분석 ⭕
10. 기타 데이터베이스 서비스 선택 관점
AWS는 “하나의 DB로 모든 문제 해결”을 추구하지 않는다.
| 데이터 특성 | 적합한 서비스 |
|---|---|
| 트랜잭션 | RDS / Aurora |
| Key 기반 고속 처리 | DynamoDB |
| 실시간 초저지연 | MemoryDB |
| 분석 | Redshift |
| 캐시 | ElastiCache |
| 그래프 | Neptune |
| 시계열 | Timestream |
| 문서형 | DocumentDB |
| 불변 원장 | QLDB |
🧠 전체 요약
DynamoDB를 중심으로 한 AWS 데이터베이스 전략의 핵심은 **“데이터 특성과 접근 패턴에 따라 역할을 분리하는 것”**이다. DynamoDB는 범용 DB가 아니라 명확한 제약 위에서 최고의 성능을 제공하는 DB이며, 인덱스·Streams·Backup·Global Tables를 통해 단순 저장소를 넘어 운영 가능한 플랫폼으로 확장된다. AWS 데이터베이스를 잘 쓴다는 것은 서비스를 많이 아는 것이 아니라 언제 무엇을 쓰지 않을지를 아는 것이다.