Amazon DynamoDB
개발자 안내서 (API 버전 2012-08-10)

읽기 일관성

Amazon DynamoDB은 전 세계의 여러 AWS 리전에서 사용할 수 있습니다. 각 리전은 다른 AWS 리전과 독립되고 분리되어 있습니다. 예를 들어, us-east-2 리전에 People이라는 테이블이 있고 us-west-2 리전에 또 다른 People 테이블이 있는 경우 이 두 테이블은 완전히 다른 두 개의 테이블로 간주됩니다. DynamoDB를 사용할 수 있는 모든 AWS 리전 목록은 Amazon Web Services 일반 참조AWS 리전 및 엔드포인트를 참조하십시오.

모든 AWS 리전은 가용 영역이라고 하는 여러 개의 고유한 위치로 구성됩니다. 각 가용 영역은 다른 가용 영역의 오류로부터 격리되어 있으며 같은 리전의 다른 가용 영역에 경제적이고 지연 시간이 낮은 네트워크 연결을 제공합니다. 따라서 한 리전의 여러 가용 영역 간 빠른 데이터 복제가 가능합니다.

애플리케이션에서 DynamoDB 테이블에 데이터를 쓰고 HTTP 200 응답(OK)을 받을 때 쓰기가 발생하며 지속됩니다. 보통 1초 이내에 모든 스토리지 위치의 데이터가 일관성을 갖게 됩니다.

DynamoDB에서는 최종적 일관된 읽기 및 강력히 일관된 읽기를 지원합니다.

최종적 일관된 읽기

DynamoDB 테이블의 데이터를 읽을 때, 응답은 최근 완료된 쓰기 작업의 결과를 반영하지 않을 수 있습니다. 응답에는 부실 데이터가 일부 포함될 수 있습니다. 잠시 후 읽기 요청을 반복하면 응답이 최신 데이터를 반환합니다.

강력한 일관된 읽기(Strongly Consistent Read)

strongly consistent read를 요청하면 DynamoDB는 성공한 모든 이전 쓰기 작업의 업데이트를 반영하여 가장 최신 데이터로 응답을 반환합니다. 하지만 이러한 일관성은 다음과 같은 몇 가지 단점을 수반합니다.

  • 강력한 일관된 읽기(strongly consistent read)는 네트워크 지연 또는 중단이 발생한 경우에 사용이 어려울 수 있습니다. 이 경우 DynamoDB는 서버 오류(HTTP 500)를 반환할 수도 있습니다.

  • 강력한 일관된 읽기는 최종적 일관된 읽기보다 지연 시간이 더 길 수도 있습니다.

  • 글로벌 보조 인덱스에서는 강력히 일관된 읽기가 지원되지 않습니다.

  • 강력한 일관된 읽기는 최종적 일관된 읽기보다 처리 용량을 더 많이 사용합니다. 자세한 내용은 다음을 참조하십시오 읽기/쓰기 용량 모드

참고

달리 지정하지 않는 한, DynamoDB는 최종적 일관된 읽기를 사용합니다. GetItem, QueryScan과 같은 읽기 작업은 ConsistentRead 파라미터를 제공합니다. 이 파라미터를 true로 설정하면 DynamoDB는 작업 중 강력히 일관된 읽기를 사용합니다.