https://app.gotowebinar.com/index.html#228390267/7249691906224627724/7545131782349974799

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-0
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-1
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-2
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-3
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-4
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-5
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-6
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-7
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-8
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-9
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-10
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-11

항목 - 기타 속성의 모음. 하나의 행

항목을 구분하는 키 - 파티션키(PK와 유사)

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-14

년도 별로 저장할 때 정렬키를 사용해서 저장하면 효율적으로 저장가능.

DynamoDB - 테이블 + 파티션키 + 정렬키 를 사용..

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-17
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-18

파티션키가 중복이 되는 경우 정렬키를 사용해서 구분

정렬키를 이용해서 각각의 값을 정렬시켜서 데이터를 빠르게 정렬할 때 사용

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-21
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-22

파티션에 어떻게 저장되는 지는 알수 없다.(blackbox)

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-24
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-25
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-26

문서 모델로 저장...

데이터 항목이 중첩될 수 있다. 중첩은 32단계까지 가능하다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-29
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-30
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-31

파티션키만으로 구분이 안되니 시간(정렬키)와 같이 사용해서 항목 구분

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-33

최종적 일관성 - 5분 정도 있다가 바로 보여도 된다.

강력한 일관성 - 뱅킹 이체시 관련 데이터가 바로 보여야 한다.

--> DynamoDB는 둘다 지원하고 워크로드에 따라 선택한다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-37
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-38

최종적 일관성을 설정하는 경우. 가용 영역 A 또는 B에서 읽을 수 있다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-40

강력한 일관성을 설정하는 경우 최종적 일관성 읽기보다 2배정도 느린 성능을 보장.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-42

비용 부과 단위 - 몇GB를 사용(저장)하냐 성능에 대한 비용 청구

성능을 구매해서 사용한다라고 보면 된다.

성능 지정 -

. 프로비저닝 5WCU / 5RCU (Auto Scaling 가능하다)

. 온디멘드 트랜잭션이 들어오는 족족 성능이 늘어나게 할수 있다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-48
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-49

* Query - Scan보다 효율적. 파티션 키를 기반으로 조회.

* Scan - 검색하고자 하는 부분이 속성.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-52

테이블의 성능을 끌어올리는 방법은 - LSI, GSI 가 있다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-54
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-55

로컬보조인덱스 특징

  • 파티션 키가 동일하다는 건 동일한 파티션에 저장된다는 얘기이고. 원본 테이블의 성능을 공유한다.
  • 정렬키를 바꾸는거다.
  • 테이블에 5WCU, 5RCU 라고 할때..
  • LSI가 3WCU, 3RCU라고 하면 원본은 2WCU, 2RCU를 사용한다.
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-61

파티션 키가 바뀌는 경우 - 글로벌 보조 인덱스

기존의 원본테이블의 성능을 상속 받지 않는다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-64

글로벌 테이블 - 다른 리전으로 백업 또는 동기화할 때 사용되는 테이블, 테이블 생성 후 묶는다.

--> 리전에 생성된 테이블 간 데이터 전송을 위한 채널 == 스트림

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-67
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-68
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-69

* 400 오류 - Application 오류. 필수 파라미터 잘못 설정. Provisioning 보다 크게 들어올때.

--> Application 수정 또는 재시도

* 500 오류 - DynamoDB 오류

--> backoff 알고리즘 적용(5초 요청, 이후 10초 후 재시도.. 이후 15초 재시도)를 사용해서 천천히 재시도...

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-74

미션 크리티컬한 경우 온디멘드 모드..

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-76

비동기식 동기화(복제) <- 스트림을 먼저 활성화해야함.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-78
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-79

DynamoDB 성능 개선 2가지 방법

  • 인덱스 사용
  • DAX 사용
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-83

DynamoDB각 ms 정도 보장하는데. DAX를 사용한다면 micros 보장

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-85
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-86
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-87
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-88

파티션 키가 매우~~ 중요하다.

파티션에 균등하게 WCU/RCR가 분할된다.

성능을 늘리더라도 핫 파티션에 더 배정되지 않는다.

균등성있는 파티션 키를 사용해야한다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-93

데이터에 대한 Access 패턴을 고려한다.

데이터를 시간대별로 나눈다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-96
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-97
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-98

테이블과 성능을 공유하기 때문에 LSI를 사용해야함.

희소 인덱스(Sparsed Index) - 특정 속성에 값이 있는 항목만 인덱스에서 사용

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-101

* 균등성 있는 파티션 키 사용

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-103

동시성 제어

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-105
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-106
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-107

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-109
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-110
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-111
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-112

내부적으로 lambda함수가 데이터를 가져다가 동기화 대상 테이블에 업데이트

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-114
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-115
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-116

TTL 속성을 사용할 수 있다.

서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-118
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-119
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-120
서버리스 아키텍처를 위한 Amazon DynamoDB (이기백, AWS)-121

밀도가 높은 dynamodb 항목 -> 그룹화해서 최대한 1K로 맞춘다.

최근 수정한 날짜 :

동영상과 함께 요약부터 공유까지!

정보를 불러오는 중이에요!