Amazon DynamoDB 알아보기

Hyeokminn·2025년 10월 16일

1. DynamoDB란?

DynamoDB는 서버리스 완전관리형 NoSQL 데이터베이스 서비스이다.
쿼리 언어는 PartiQL을 사용한다.

용어

  • 테이블(Table): 데이터가 저장되는 최상위 컨테이너
  • 아이템(Item): 테이블 내의 개별 데이터 레코드(RDB의 row에 해당) + 아이템의 최대 크기는 400KB
  • 속성(Attribute): 각 아이템을 구성하는 데이터 요소(RDB의 column과 유사)

RDB와는 달리, Primary Key를 제외한 속성들은 미리 정의할 필요가 없음
따라서 성능은 PK 설계에 중요한 역할을 한다.

기본키(Primary Key)

  • 파티션 키(해시 키): 모든 아이템이 반드시 가져야 하는 필수 요소.
    DyanamoDB는 파티션 키 값을 내부 해시함수에 입력하여 해당 항목이 저장될 물리적 스토리지 단위인 파티션을 결정한다.
    따라서 성능 최적화를 위해선 읽기/쓰기 요청이 여러 파티션에 고르게 분산되도록 해야한다. (즉 높은 카디널리티의 속성을 파티션키로)
  • 정렬 키 : 선택적인 옵션으로, 동일한 파티션 키값을 가진 아이템의 정렬하는 키 값

2. DynamoDB 기능

읽기 용량/쓰기 용량 모드: 온디맨드 모드와 프로비저닝 모드가 존재한다.

  • On-Demand 사용한만큼 값을 지불하는 모델로 예측 불가능한 워크로드일때 사용하기 좋다.
  • Provisioning은 미리 읽기 용량 유닛과 쓰기 용량 유닛을 프로비저닝하여 비용관리하는 모드이다.

기본키 만으로 모든 데이터 접근 요구사항 충족은 어렵기에 보조 인덱스라는 개념이 존재한다. 이를 통해 데이터를 효율적으로 쿼리할 수 있다.

  • GSI(글로벌 보조 인덱스): 파티션 키와 정렬 키가 모두 다른 인덱스로, 테이블 생성 후에도 생성 가능하고 더 넓은 범위의 쿼리가 가능
  • LSI(로컬 보조 인덱스): 동일한 파티션 키를 사용하지만 다른 정렬 키를 사용하며, 테이블 생성 시에만 정의

글로벌테이블: 여러 AWS 리전에 걸쳐 다중 활성 데이터베이스 구축하는 기능으로, 한 리전에 데이터가 쓰이면 다른 리전으로 자동 복제됨. 결과적으로 각 지역 사용자들이 가까운 곳의 리전에서 데이터를 읽고 쓰게하여 지연시간을 줄임.

백업:

  • 온디맨드 백업: 특정 시점의 테이블을 스냅샷 생성하여 장기 보관하는 백업.
  • 특정 시점 복구(PITR): 최근 35일 이내 어느 시점으로든 테이블 복원 가능.

결론

DynamoDB는 AWS가 제공하는 핵심 서버리스 NoSQL 데이터베이스로, 개발자가 인프라 관리에 대한 부담 없이 이용 가능하고, 예측 불가능한 대규모 트래픽에도 일관된 밀리초 단위의 저지연 성능과 수평적 확장성을 제공하는 서비스이다. 성능과 비용 효율성은 전적으로 데이터가 파티션에 고르게 분산되도록 하는 '파티션 키' 설계에 달려있다.

0개의 댓글