반응형

DynamoDB 테이블

DynamoDB는 데이터를 테이블에 저장합니다. 테이블을 생성할 때 테이블 이름과 파티션 키를 지정해야 합니다. 테이블 생성 시에 필요한 엔터티는 이 두 항목 뿐입니다.

 

DynamoDB는 기본 키를 사용하여 테이블의 각 항목을 고유하게 식별하고 보조 인덱스를 사용하여 보다 유연하게 쿼리를 작성하도록 해 줍니다. 지원되는 기본 키의 2가지 유형은 다음과 같습니다.

  • 단순 기본 키
    파티션 키라는 속성 하나만으로 구성된 단순한 기본 키입니다. 파티션 키를 하나만 사용하는 경우 두 항목이 동일한 값을 가질 수 없습니다.
  • 복합 기본 키
    복합 기본 키는 파티션 키와 정렬 키로 구성됩니다. 이 경우 여러 항목의 파티션 키 값은 같을 수 있지만 정렬 키 값은 달라야 합니다.

 

핵심 구성 요소는 테이블, 항목, 및 속성입니다. 테이블은 항목의 모음이고 각 항목은 속성의 모음입니다. 위 예시에서 나와 있는 테이블에는 2개 항목이 포함되어 있고, Hammer57과 FluffyDuffy가 단순 기본 키입니다. 기본 키가 Hammer57인 항목에는 3개의 속성 (게임 ID, 최고점, 장르)이 있습니다. FluffyDuffy의 기본 키에는 구독 여부 속성이 포함되며 장르 속성은 포함되지 않았습니다.

 

상세

 

DynamoDB 용량 및 크기 조정

DynamoDB에서 용량을 계획할 때는 초당 읽기/쓰기 요청의 예상 수와 해당 요청의 크기를 고려해야 합니다. 이 정보를 고려하면 테이블용 용량 모드를 쉽게 선택할 수 있습니다. 또한 메시지 크기를 관리할 수 있도록 테이블을 설계할 수 있습니다.

 

온디맨드 용량 모드는 요청 단위로 요금이 부과되는 모델입니다. 다음과 같은 상황에서는 온디맨드 용량 모드가 유용합니다.

  • 워크로드를 알 수 없는 경우
  • 트래픽을 예측할 수 없는 경우
  • 사용한 만큼만 지불하는 요금제를 사용하려는 경우

프로비저닝된 용량 모드 사용 시에는 RCU와 WCU의 최대 수를 설정합니다. 트래픽이 해당 한도를 초과하면 DynamoDB는 비용 제어를 위해 요청을 스로틀합니다. 자동 크기 조정을 사용해 프로비저닝된 용량을 조정할 수 있습니다. 다음과 같은 상황에서는 프로비저닝된 용량 모드가 유용합니다.

  • 애플리케이션 트래픽이 예측 간으한 경우
  • 트래픽의 양이 일정하거나 점진적으로 변경되는 경우
  • 비용 관리를 위해 용량 요구 사항을 예측할 수 있는 경우

상세

 

DynamoDB 일관성 옵션

애플리케이션이 DynamoDB 테이블에 데이터를 쓰고 HTTP 200 응답(OK)을 수신하면 쓰기가 발생하며 내구성을 갖습니다. 데이터는 일반적으로 1초 이내에 모든 스토리지 위치에서 최종적으로 일관성을 갖습니다. DynamoDB는 최종적으로 일관된 읽기와 강력한 일관된 읽기를 지원합니다

 

  • 최종적으로 일관된 읽기
    DynamoDB 테이블의 데이터를 읽을 때, 응답은 최근 완료된 쓰기 작업의 결과를 반영하지 않을 수 있습니다. 응답에는 부실 데이터가 일부 포함될 수 있습니다. 잠시 후 읽기 요청을 반복하면 응답이 최신 데이터를 반환합니다.
    (Ex_ YouTube 댓글, 쇼핑 장바구니 등 실시간 동기화가 굳이 필요하지 않은 경우)

  • 강력한 읽기 일관성
    강력한 읽기 일관성을 요청하면 DynamoDB는 성공한 모든 이전 쓰기 작업의 업데이트를 반영하여 가장 최신 데이터로 응답을 반환합니다. 강력한 읽기 일관성은 네트워크 지연 또는 중단이 발생하는 경우에 사용이 어려울 수 있습니다.
    (Ex_ 항공권 구매, 티켓팅 등 실시간 동기화가 필요한 경우)

옵션을 지정하지 않을 경우 DynamoDB는 최종적으로 일관된 읽기를 사용합니다. 읽기 작업(GetItem, Query,Scan)은 CnsistentRead 파라미터를 제공합니다. 이 파라미터를 true로 설정하면 DynamoDB는 작업 중에 강력한 읽기 일관성을 사용합니다.

 

DynamoDB 글로벌 테이블

글로벌 테이블은 단일 AWS 계정이 소유하고 복제 테이블로 식별되는 한 개 이상의 DynamoDB 테이블의 모음입니다. 복제 테이블(이하 복제본)은 글로벌 테이블의 일부로 기능하는 단일 DynamoDB 테이블입니다. 각 복제본에는 동일한 데이터 항목 집합이 저장됩니다. 글로벌 테이블은 리전당 한 개의 복제 테이블을 가질 수 있습니다. 모든 복제본은 동일한 테이블 이름과 동일한 기본 키 스키마를 갖습니다.

 

DynamoDB 글로벌 테이블은 복제 솔루션을 직접 구축하여 관리하지 않고도 다중 리전, 다중 활성 마스터 DB를 배포할 수 있는 완전관리형 솔루션을 제공합니다. 글로벌 테이블을 생성할 때 테이블을 사용할 수 있게 할 리전을 지정해야 합니다. DynamoDB는 이러한 리전에 동일한 테이블을 만들고 이들 모든 테이블에 대한 데이터 변경을 지속적으로 전파하기 위해 필요한 모든 태스크를 수행해야 합니다. DynamoDB는 AWS 네트워크 백본을 통해 이러한 변경 사항을 전달합니다.

 

상세

반응형

'자격증 > AWS SAA' 카테고리의 다른 글

[AWS SAA] 30. 캐싱 서비스  (0) 2023.08.25
[AWS SAA] 29. DB Caching(캐싱)  (0) 2023.08.25
[AWS SAA] 27.Dynamo DB - 1  (0) 2023.08.23
[AWS SAA] 26. RDS - Aurora DB  (0) 2023.08.22
[AWS SAA] 25. RDS(Amazon Relational Database Service)  (0) 2023.08.21