프로젝트

일반

사용자정보

Actions

DynamoDB 개요


DynamoDB

장점요인

  • 관리형이면서
  • 성능을 예측하여 설계할 수 있고,
  • 일관된 성능을 보장
  • 고가용성과 내구성

올바른 이해

  • DDB는 고유의 특징과 제약을 동시에 지님
  • 특히 일관된 성능(=Latency)을 제공하는데 주력
  • ex)성능 지연 대신 요청 거부(Thorttling)

RCU, WCU

  • 테이블의 읽기(RCU)와 쓰기(WCU)에 원하는 만큼의 처리량을 설정
  • RCU와 WCU는 각기 독립적으로 설정
  • 1 WCU = 1KB/sec
  • 1 RCU = 4KB/sec

Strongly vs. Eventually

  • 1 RCU는 최대 4KB의 항목에 대하여, Strongly 조건으로 1/sec, Eventually 조건으로 2/sec
  • ex) 6KB 항목에 대해서 100회 읽기를 Strongly, Eventually 각 수행할 경우 필요한 RCU
    • Ceiling(6KB/4KB) * 100 = ceiling(1.5) * 100 = 2 * 1 * 100 = 200 (Strongly)
    • Ceiling(6KB/4KB)/2 * 100 = ceiling(1.5)/2 * 100 = 2/2 * 100 = 100 (Eventually)
    • ceiling 함수: 숫자를 다음 정수(whole number)로 올림하는 데 사용

파티셔닝

  • DDB는 일관된 성능을 제공하기 위해 한 테이블을 여러개의 파티션으로 분산
  • 파티션의 갯수는 Throughput과 테이블의 크기로 결정
  • 어떤 항목이 어떤 파티션에 저장될지는 분산키(Hash Key)에 의해 결정
  • 파티션의 갯수를 결정하는 공식
    • MAX ((RCU/3000+WCU/1000), Table Size(GB)/10GB)
    • MAX ((5000/3000+500/1000), 8/10) = MAX (3,1) = 3
  • 매우 고르게 분포하는 분산키를 사용하고 (Uniform distribution Hash key) --> 적절한 처리량을 설정하면
    • 설정한 Throughput은 모든 파티션에 균등 배분된다.
      • 읽기와 쓰기에서 분산키의 인기도가 다를 수 있음 (Hot Key)
    • 한번 증가한 파티션은 줄어들지 않는다.
      • Throughput 확장의 고민요소
        • 파티션당 RCU/WCU는 갈수록 줄어들 수 있음
      • RCU/WCU가 여유 있는데 Thorttling 발생의 주 원인
      • LSI는 테이블의 WCU를 소모한다.

SANGKYU KANG이(가) 약 6년 전에 변경 · 1 revisions