Jerry's Log

DynamoDB

contents

1. DynamoDB란 무엇인가?

DynamoDB는 AWS에서 제공하는 완전 관리형 서버리스 NoSQL 데이터베이스입니다.


2. 핵심 구성 요소


3. Primary Key (가장 중요한 결정)

DynamoDB에서는 Primary Key(PK)를 어떻게 정의하느냐에 따라 쿼리 할 수 있는 방식이 완전히 결정됩니다. 두 가지 유형이 있습니다.

A. 파티션 키 (단일 기본 키)

B. 파티션 키 + 정렬 키 (복합 기본 키)


4. 보조 인덱스 (쿼리의 유연성)

기본적으로는 Primary Key로만 효율적인 조회가 가능합니다. 다른 컬럼(예: Email)으로 조회하려면 보조 인덱스가 필요합니다.

A. 로컬 보조 인덱스 (LSI)

B. 글로벌 보조 인덱스 (GSI)


5. 용량 모드 (요금 및 성능)

A. 온디맨드 모드 (On-Demand)

B. 프로비저닝 모드 (Provisioned)


6. 일관성 모델

DynamoDB는 내구성을 위해 데이터를 3개의 가용 영역(AZ)에 복제합니다.

  1. 최종 일관성 (Eventually Consistent - 기본값):
    • 가장 빠르고 저렴 (0.5 RCU).
    • 위험: 쓰기 직후에 바로 읽으면, 아직 3개 존에 전파되지 않아서 과거 데이터를 읽을 수도 있습니다.
  2. 강력한 일관성 (Strongly Consistent):
    • 느리고 비쌈 (1.0 RCU).
    • 보장: 항상 최신 데이터를 읽습니다.

7. 고급 기능


8. 싱글 테이블 디자인 (Single Table Design)

SQL에서는 데이터를 정규화(User 테이블, Order 테이블 분리)합니다.

DynamoDB 고급 사용자는 극강의 조회 속도를 위해 모든 엔티티를 하나의 테이블에 때려 넣습니다.

references