brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Sep 03. 2023

36탄-6. AWS-다이나모 디비

다이나모 디비의 키 디자인하는 법을 알아보자.

다이나모 디비를 모델링하고자 하는 분에게 추천한다.

실제 모델링에 관련 없는 분은 안 봐도 좋다.


   

<1> 다이나모 디비 중요 개념

<2> 다이나모 디비 데이터 모델링 TENET

<3> 싱글 테이블 키 디자인 예시   



<1> 다이나모 디비 중요 개념 


1

테이블 구조.

아이템

어트리뷰트 = 칼럼

아이템의 필수요소 파티션키

파티션키 = 찾으려고 하는 데이터가 어디 있는지 확인

소프트키 = 1:N 관계 모델링.  등호 연산자등을 이용해 검색.

파티션키 + 소프트키  = 프라이머리키 


2

다이나모 디비 작업은?

테이블 단위로 읽고 쓰는 작업을 한다. = 논리적인 단위

실제 물리적인 서버는 파티션으로 컴퓨팅 작업을 한다.

테이블이 또 만들어지면, 물리적으로 나눠진다. 


3

각각의 파티션은 초당 처리할 수 있는 최대 용량이 존재한다.

1초에 최대 1천 개의 쓰기, 3천 개의 읽기, 10GB까지 데이터를 저장할 수 있다.

파티션의 이러한 제약사항이 있기 때문에 키 디자인이 중요하다.

특정 파티션으로 데이터 쏠림이 없도록 키 디자인을 해야 한다.

키 디자인을 통해 여러 파티션이 골고루 사용하도록 하는 것이 중요하다.  



4

다이나모는 2가지의  세컨더리 인덱스를 제공한다. 


첫째, 글로벌 세컨더리 인덱스

테이블의 프라이머리 키 이외에 검색조건이 필요할 때 언제나 추가/삭제가 가능하다.

GSI는 하나하나가 비용이다. 많이 사용하지 않도록 하자.  


둘째, 로컬 세컨더리 인덱스.

테이블을 생성하는 시점에서 가능하다. 삭제는 불가능하다.

일반적으로 많이 사용하지 않는다.   





<2> 다이나모 디비 데이터 모델링 TENET  



다이나도 디비의 키 디자인을 위한 중요한 부분   





<3> 싱글 테이블 키 디자인 예시   



1

다이나모 디비  키 디자인을 해보자. 


2

 싱글 테이블 키 디자인?

애플리케이션의 모든 엔티티를 하나의 테이블에서 액세스 할 수 있도록 설계하는 것. 



3

첫째. 모든 유즈케이스를 나열해 보자. 

사용자 기본 정보 표시 - 간단한 소개, 포스트 

팔로잉, 팔로어 카운트

나의 Post목록 조회/생성

Post별 좋아요 카운트 

친구들의 최신글 조회 기능  



다음 자료

https://brunch.co.kr/@topasvga/3426




감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari