클라우드(AWS)/DVA-C02

[AWS] DynamoDB read Consistency란? 아주 쉽게 정리 (Eventually Consistent Reads, Strongly Consistent Reads)

찌르비 2024. 12. 2. 19:33
반응형

DynamoDB에 관한 총 정리: https://jibinary.tistory.com/277

 

[AWS] DynamoDB란? 쉽게 기능 총정리 (NoSQL, Key-Value, Secondary Index, GSI, LSI, Global Table, DAX, WCU/RCU, Capacity Mo

◇  공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇    Fast NoSQL Key-Value DatabaseAmazon DynamoDBServerless 서비스: 서버, OS 관리 등 모두 AWS 측에서 Fully managed 해준다.NoSQL

jibinary.tistory.com

 

 

 

DynamoDB Read Consistency (읽기 일관성)

Consistency 모델은 Read(읽기) 요청 시 데이터가 얼마나 최신인지를 보장하는 방식을 의미한다.

DynamoDB는 2 가지 Read Consistency을 제공한다.

  1. Eventually Consistent Reads
  2. Strongly Consistent Reads

 

비교

특징 Eventually Consistent Reads Strongly Consistent Reads
반환하는 데이터 최신 데이터가 아닐 수 있음
(이전 데이터를 반환 할 수 있다.)
항상 최신 데이터 보장
데이터 조회 가장 가까운 곳에서 데이터를 반환 모든 복제본 동기화 후 데이터를 반환
성능 Strongly Consistent Reads보다 빠르다
지연 시간이 짧음
Eventually Consistent Reads보다 느리다
지연 시간이 길 수 있음
Throughput 1 RCU당 최대 2개의 4KB 읽기 1 RCU당 1개의 4KB 읽기 처리

 

 

 

DynamoDB가 데이터를 읽는 방법

DynamoDB는 table, LSI, GSI, streams에서 데이터를 읽을 수 있다.

 

tableLSI(local secondary indexes)는 2 가지 읽기 일관성 옵션을 제공한다

  1. Eventually Consistent Reads (최종적 일관성 읽기): 기본 설정.
  2. Strongly Consistent Reads (강한 일관성 읽기): 최신 데이터를 보장.

GSI(global secondary indexes)와 streams에서의 모든 읽기는 Eventually Consistent로 처리된다.

 

(DynamoDB는 뭐 이런 특징이 있다 라고만 일단 생각하면 될듯.....😅)

AWS 공식 문서

 

1. Eventually Consistent Reads (최종적 일관성 읽기)

(기본 설정) 특별히 지정하지 않으면 DynamoDB는 "Eventually Consistent Reads"을 사용한다.

읽기 요청 시 최신 데이터가 반활될 수도 있고, 이전 데이터가 반환될 수 도 있다.

그러나 최신 데이터가 변경된 후 일정 시간이 지나면 모든 복제본이 동기화되어 결국에는 최신 데이터가 반환하게 된다.

 

DynamoDB는 한 Region 당 3개의 복제본 가지고 있다.

새로운 데이터를 write하면 여러 복제본에 전파되는데, 이 과정에서 지연이 발생할 수 있다. (그렇기 때문에 이전 데이터를 반환하기도 하는 것이다)

 

예시) 3개중 2개의 AZ에 새로운 데이터가 Write(쓰기 작업) 된 경우, 나머지 한개의 AZ에는 아직 이전 데이터가 남아있기에 2개의 AZ에서 Replicate(복제)한다.

 

 

 

 

2. Strongly Consistent Reads (강한 일관성 읽기)

읽기 요청 시 항상 최신 데이터가 반환한다. 

DynamoDB는 모든 복제본이 동기화되었는지 확인한 후 데이터를 반환한다.
(최신 데이터가 제대로 모든 DynamoDB에 복제 완료 후에 반환하기에 시간이 오래 걸린다.)

 

예시) 3개중 2개의 AZ에 새로운 데이터가 Write(쓰기 작업)되었다면, 나머지 1개 AZ쪽에서 2개의 AZ에 각각 같은 파일을 갖고있는지 확인한다. 각각 확인하기 때문에 시간과 코스트가 더 오래걸린다. 

 


🤔 문제

DynamoDB 테이블에서 데이터를 읽을 때 선택한 일관성 모델이 프로비저닝된 처리량에 어떻게 영향을 미칩니까?

 

  1. Strongly consistent reads(강한 일관성 읽기)는 Eventually consistent reads(최종적 일관성 읽기)와 동일한 처리량을 사용합니다.
  2. Strongly consistent reads는 Eventually consistent reads보다 더 많은 처리량을 사용합니다.
  3. Strongly consistent reads는 Eventually consistent reads보다 적은 처리량을 사용합니다.
  4. Strongly consistent reads는 읽기 활동에 따라 가변적인 처리량을 사용합니다.

정답

더보기

정답. 2번

 

 

728x90
반응형