처음 만난 AWS 문서


13.4 DynamoDB 파티션 및 키

지금부터는 DynamoDB의 파티션과 키에 대해서 배워보도록 하겠습니다.

먼저 DynamoDB의 파티션DynamoDB가 데이터를 저장하는 곳입니다.
SSD(Solid State Drive)로 백업되는 테이블용 스토리지 할당을 의미하며, 하나의 AWS 리전 내의 여러 가용 영역에 자동으로 복제됩니다.

이 파티션은 사용자가 직접 관리할 필요 없이 전적으로 DynamoDB에서 처리 하게 됩니다.
그리고 DynamoDB는 기존 파티션이 지원할 수 있는 한도를 초과하여 테이블의 할당된 처리량 설정을 늘리는 경우와, 기존 파티션 용량이 다 차서 추가 스토리지 공간이 필요한 경우에 테이블에 추가 파티션을 할당하게 됩니다.


이제 DynamoDB의 키에 대해서 알아보겠습니다.

보통 데이터베이스에서 키라고 하면 Table내에서 각 Item을 구분하는 고유 식별자를 의미합니다.
그리고 테이블에서 기본이 되는 키를 영어로는 Primary Key라고 부릅니다.

  • 기본키 (Primary Key)
    • Table내에서 각 ltem을 구분하는 고유 식별자
    • 단순 기본 키: 파티션 키만 사용
    • 복합 기본 키: 파티션 키와 정렬 키를 함께 사용
  • 파티션 키(Partition Key)
    • 내부 해시 함수에 대한 입력으로 파티션 키 값을 사용
    • 출력에 따라 항목을 저장할 파티션이 결정됨
  • 정렬 키 (Sort Key)
    • 파티션 키가 동일한 모든 항목들을 정렬하는 키 값

DynamoDB의 기본 키로는 파티션 키만 사용하는 단순 기본 키 방식과, 파티션 키와 정렬 키를 함께 사용하는 복합 기본 키 방식이 있습니다.
먼저 파티션 키는 데이터가 저장되어 있는 파티션을 결정하기 위한 키입니다.
내부 해시 함수에 대한 입력으로 파티션 키 값을 사용하며, 출력에 따라 항목을 저장할 파티션이 결정됩니다.
그리고 정렬 키는 파티션 키가 동일한 모든 항목들을 정렬하는 키 값입니다.

DynamoDB에서는 파티션 키만 사용하거나 파티션 키와 정렬 키를 함께 사용하는 형태로 테이블의 기본 키를 설정할 수 있습니다.

글로만 보면 잘 이해가 되지 않을 수 있으니 키의 개념을 그림으로 한 번 살펴보겠습니다.

먼저 기본 키로 파티션 키만 사용하는 경우입니다.

Simple Primary Key

여기에서는 Name을 파티션 키로 사용한 것을 볼 수 있으며, 이렇게 파티션 키를 통해서 Item을 찾을 수 있습니다.

그리고 다음은 기본 키로 파티션 키와 정렬 키를 함께 사용하는 경우입니다.

Composite Primary Key

이 경우에는 먼저 파티션 키를 해시 함수의 입력으로 전달하여 Item이 저장되어 있는 파티션을 찾고, 이후에 해당 파티션 내에서 정렬 키를 사용하여 Item을 찾게 됩니다.

DynamoDB의 두 가지 기본 키 방식을 위 그림과 함께 잘 기억해두기 바랍니다.


마지막 업데이트: 2023년 11월 12일 00시 00분

이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.