DynamoDB 는 AWS 의 완전 관리형 키-값 · 문서 데이터베이스다. 처리량을 미리 설계할 수 있고, 규모와 무관하게 일관된 지연 시간을 제공하며, 여러 가용 영역에 복제돼 고가용성과 내구성을 갖는다.
장점으로 꼽히는 것은 다음과 같다.
DynamoDB 는 고유의 특징과 제약을 동시에 가진다. 특히 일관된 성능(지연 시간) 을 제공하는 데 주력하며, 처리량을 넘는 요청은 성능이 느려지는 대신 거부(throttling) 된다.
프로비저닝 모드에서는 테이블의 읽기(RCU)와 쓰기(WCU) 처리량을 원하는 만큼 설정한다. RCU 와 WCU 는 각기 독립적으로 설정한다.
| 단위 | 의미 |
|---|---|
| 1 WCU | 초당 1KB 이하 항목 1회 쓰기 |
| 1 RCU | 초당 4KB 이하 항목 1회 강력한 일관성 읽기, 또는 2회 최종적 일관성 읽기 |
온디맨드 모드는 용량을 지정하지 않고 요청 단위로 과금한다.
1 RCU 는 최대 4KB 항목에 대해 강력한 일관성(strongly consistent) 조건으로 초당 1회, 최종적 일관성(eventually consistent) 조건으로 초당 2회 읽기다.
예: 6KB 항목을 초당 100회 읽을 때 필요한 RCU
ceiling(6KB / 4KB) × 100 = 2 × 100 = 200ceiling(6KB / 4KB) / 2 × 100 = 2 / 2 × 100 = 100ceiling 은 다음 정수로 올림하는 함수다.
DynamoDB 는 일관된 성능을 위해 한 테이블을 여러 파티션으로 나눈다. 파티션 수는 처리량과 테이블 크기로 결정되고, 어떤 항목이 어떤 파티션에 저장될지는 파티션 키(hash key)로 결정된다.
파티션 수를 결정하는 공식(구 문서 기준)
MAX( (RCU / 3000 + WCU / 1000), TableSize(GB) / 10GB )
MAX( (5000 / 3000 + 500 / 1000), 8 / 10 ) = MAX(3, 1) = 3
원본 문서에 있던 그림(picture049-1 · picture658-1 · picture203-1 · picture572-1)은 수집되지 않아 빠져 있다.