HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/강의 내용 정리/AWS 22.9.1 데이터 특집/
AMAZON DynamoDB 키 디자인 패턴

AMAZON DynamoDB 키 디자인 패턴

Amazon DynamoDB 키 디자인 패턴.pdf
1669.8KB
notion image
  • DynamoDB는 해쉬함수를 적용해서 파티션을 나누어서 알아서 저장함
 

키 디자인 시 고려해야할 DynamoDB의 제약 조건

notion image
notion image
notion image
  • 어플리케이션의 필요에 따라 읽기 일관성을 충분히 고려해야함
  • DynamoDB는 하나의 로우에서 하나의 글자만 바뀌어도 전체를 바꾸기 때문에 아이템 크기는 줄이고 갯수를 늘리는게 좋음
  • RDBMS는 쿼리 or ORM을 이용하지만 NoSQL은 API를 이용하여 데이터를 가져옴
notion image
notion image
notion image
notion image

Secondary Index

notion image
notion image

Modeling Tenet

notion image
  • Entity 별로 테이블 만드는거 아님 NoSql은 하나의 테이블로 시작
notion image
  • 테이블 갯수는 최대한 줄이는게 좋다
  • NoSQL의 키 디자인은 10명이 디자인하면 10명 다 다르게 나옴(RDBMS는 규칙이 있어서 비슷하게 나오지만) → 그래서 Review, Repeat, Review …
  • RDBMS는 데이터 액세스 보다는 정규화에 초점을 맞춤
    • 디스크 가격이 비싸서 용량을 적게 차지하기 위해서

정규화, 비정규화

notion image
notion image
notion image
notion image
  • #을 이용해서 복합키 만들 수 있음
  • UI에 따라 PK를 그대로 정하기

싱글 테이블 디자인

notion image
  • 어플리케이션의 모든 엔티티를 하나의 테이블에서 할 수 있도록
  • 운영 부담 적어짐.
  • 시계열 데이터나 엔티티 별로 접근 패턴이 다르면 좋지 않음
notion image
  • 테이블 많아지면 손이 많이간다. 관리 힘들어

싱글 테이블 디자인 예제 - 이커머스 애플리케이션 디자인

[ 참고 github link - https://github.com/aws-samples/amazon-dynamodb-design-patterns/tree/master/examples/an-online-shop ]
notion image
  • ERD는 RDB에서 그리는거라 생각하지만, 1:1, 1:N 이런 관계들 그래도 대략적으로 봐야함. 필드 값까지는 필요없고
  • RDB로 시작하고 스케일업 하다가 샤딩이냐 NoSQL이냐 를 고민하게 됨
notion image
  • attribute에 EntityType을 이용하기!
  • PK와 SK에 왜 동일한 값이? — SK에 값을 넣어야 해서 동일한 값을 넣은 것
notion image