[AWS] DynamoDB Workshop

sso😊·2022년 7월 5일
0

AWS

목록 보기
7/10
post-thumbnail


Amazon Dynamo DB

특징

  • 완전관리형 NoSQL
  • key-value 저장소
  • scaling 가능 → 워크로드에 맞게 확장
  • IAM 방식의 접근 제어
  • 이벤트 기반의 프로그래밍 → DynamoDB 스트림에서 키네시스 큐를 람다로 처리후 ElasticSearch로 시각화

    → Range DB보다는 개별 Insert 처리에 최적화 


  • 인프라 관점 - 세개의 가용영역에서 replica →. 99.9999% SLA

읽기/쓰기 용량 모드

  • 프로비저닝 모드 -예측가능, 비용 할인
  • 온디맨드 모드 - 주로 사용, 1.5배~2배 트래픽이 생기면 문제가 생김

확장 방식

  • 수직확장X, 다수의 샤드로 수평 확장
  • 1000 쓰기(WCU) 또는 3000 읽기(RCU) 도는 용량 10GB 이상이면 파티션 확장

KEY 설계

  • Partition key(필수) 와 Sort key(선택) →  테이블에서는 이 두가지만 검색 가능, 두가지 함께는 primary key가 됨 ( attributes에서는 쿼리불가능)
  • Partition key - 고유 값
  • Sort key - 소트 값
  • Simple primary key (Partition Key)
  • Composite primary key (Partition Key + Sort Key)


  • Eventualley Consistancy - 쓰기가 일어났을 때, 읽기시 데이터 불일치가 일어날 수 있음


  • 글로벌 보조 인덱스 (GSI) - Foreign key를 가지는 테이블( Primary  key이외의 key도 검색 가능 하도록)



Basic  NoSQL 디자인 패턴

데이터 모델링 

  • Tool - NoSQL Workbench
  • 기본요소 - Table, Item, Primary key , Attributes
  • 조인이 불가능→ 단일 테이블 + ‘일반적인’ Primary Key → GSI구성

1:다 관계 모델링 전략

  • 비정규화 + 복잡한 속성 값 
  • 비정규화 + 속성 값 중복 저장 - 중복되는 값이 변하지 않을 경우, 자주 바뀌는 경우
  • 복합 primary key를 활용한 쿼리 -아이템을 컬렉션화 가능









0개의 댓글