DynamoDB란?

2026. 6. 28. 17:49·Data Engineering/AWS

들어가며

AWS를 공부하다 보면 RDS와 함께 자주 등장하는 데이터베이스가 바로 DynamoDB입니다.

처음에는 NoSQL이라는 개념부터 Partition Key, Sort Key까지 낯선 용어가 많아 어렵게 느껴질 수 있습니다. 하지만 DynamoDB는 '어떻게 데이터를 빠르게 저장하고 조회하는지'를 이해하면 생각보다 어렵지 않습니다.

이번 글에서는 DynamoDB의 기본 개념과 RDS와의 차이, 그리고 Partition Key와 Sort Key의 역할까지 쉽게 정리해보겠습니다.


1. DynamoDB란?

DynamoDB는 AWS에서 제공하는 완전관리형(Serverless) NoSQL 데이터베이스입니다.

사용자가 직접 데이터베이스 서버를 설치하거나 운영할 필요 없이 AWS가 자동으로 관리해 주며, 대규모 트래픽에서도 빠른 읽기·쓰기 성능을 제공합니다.

특히 다음과 같은 특징을 가지고 있습니다.

  • 서버 관리 불필요
  • 자동 확장(Auto Scaling)
  • 밀리초(ms) 수준의 빠른 응답
  • 여러 AZ에 자동 복제되어 높은 가용성 제공

2. RDS와 무엇이 다를까?

가장 큰 차이는 데이터를 저장하는 방식입니다.

RDS는 관계형 데이터베이스로 여러 테이블 간 관계를 관리하는 데 강점이 있습니다.

반면 DynamoDB는 Key-Value 기반으로 데이터를 저장하며, 특정 데이터를 매우 빠르게 조회하는 데 최적화되어 있습니다.

RDS DynamoDB
관계형 데이터 NoSQL
JOIN 가능 JOIN 미지원
SQL 사용 Key 기반 조회
복잡한 조회에 강함 빠른 조회에 강함

관계가 복잡한 업무 시스템은 RDS가 적합하고, 사용자 상태나 세션처럼 빠른 조회가 필요한 데이터는 DynamoDB가 적합합니다.


3. DynamoDB의 데이터 구조

https://blog.bytebytego.com/p/a-deep-dive-into-amazon-dynamodb

DynamoDB는 다음과 같은 구조로 데이터를 저장합니다.

  • Table : 데이터를 저장하는 공간
  • Item : 하나의 데이터
  • Attribute : Item을 구성하는 속성

예를 들어 사용자 게시글을 저장한다면 다음과 같습니다.

{
  "user_id": "john123",
  "post_ts": "2026-06-28T12:34:09Z",
  "content": "Hello DynamoDB!"
}

하나의 JSON 객체가 하나의 Item이라고 생각하면 이해하기 쉽습니다.


4. Partition Key란?

https://medium.com/%40smitgabani/architecting-cloud-native-solutions-amazon-dynamodb-javascript-sdk-and-continuous-development-2f1e27cf7456

Partition Key는 데이터를 어느 파티션에 저장할지 결정하는 기준입니다.

예를 들어 Partition Key가 user_id라면

john123
kim123
park123

각 값은 내부적으로 Hash 함수가 적용되어 서로 다른 파티션으로 분산 저장됩니다.

john123 → Partition A

kim123 → Partition C

park123 → Partition B

이 과정은 AWS가 자동으로 처리하며, 개발자는 저장 위치를 직접 관리하지 않습니다.

어떤 기준으로 데이터를 분산할지는 개발자가 결정하고, 실제 분산 저장은 DynamoDB가 자동으로 수행합니다.


5. Sort Key란?

https://awsfundamentals.com/blog/amazon-dynamodb-pricing-explained

Sort Key는 같은 Partition Key를 가진 여러 데이터를 구분하고 정렬하는 기준입니다.

Partition Key : user_id
Sort Key : createdAt
john123

├── 2026-06-20
├── 2026-06-21
├── 2026-06-28

처럼 같은 사용자의 게시글이 날짜순으로 저장됩니다.

따라서

  • 최근 게시글 조회
  • 특정 기간 게시글 조회
  • 가장 마지막 게시글 조회

와 같은 작업을 매우 빠르게 수행할 수 있습니다.


6. Primary Key는 RDS와 어떻게 다를까?

RDS의 Primary Key는 데이터를 고유하게 식별하기 위한 키입니다.

반면 DynamoDB에서는 Primary Key가 데이터를 어디에 저장할지 결정하는 역할까지 함께 수행합니다.

RDS

Primary Key
↓
행(Row)을 구분

DynamoDB

Partition Key
↓
저장 위치 결정
↓
조회 기준

이라는 차이가 있습니다.


7. 언제 DynamoDB를 사용할까?

관계보다 현재 상태를 빠르게 조회하는 데이터는 DynamoDB에 적합합니다.

  • 로그인 세션
  • 장바구니
  • 사용자 설정
  • 실시간 채팅
  • 게임 랭킹
  • IoT 센서 데이터
  • 최근 조회 기록
  • 사용자 상태 정보

반대로 회원, 주문, 결제처럼 여러 테이블 간 관계가 중요한 데이터는 RDS가 더 적합합니다.


8. 마치며

이번 글를 작성하며 DynamoDB는 단순히 빠른 NoSQL 데이터베이스가 아니라, 조회 패턴을 기준으로 데이터를 설계하는 데이터베이스라는 점을 이해할 수 있었습니다. 특히 Partition Key와 Sort Key는 단순한 컬럼이 아니라 데이터를 어떤 기준으로 분산하고 조회할지를 결정하는 핵심 요소라는 점이 인상적이었습니다.

 

또한 RDS처럼 관계를 중심으로 설계하는 방식과 달리, DynamoDB는 서비스에서 어떤 데이터를 얼마나 빠르게 조회해야 하는지를 먼저 고려해 데이터 모델을 설계해야 한다는 점도 배울 수 있었습니다.

'Data Engineering > AWS' 카테고리의 다른 글

DynamoDB 트래픽 관리 | Throttling, On-Demand, Provisioned, Auto Scaling 이해하기  (0) 2026.06.29
DynamoDB WCU와 RCU란?  (0) 2026.06.29
AWS EFS란?  (0) 2026.06.26
AWS EBS란?  (0) 2026.06.26
AWS S3 보안 정리 - SSE, CSE, SSL/TLS 이해하기  (0) 2026.06.25
'Data Engineering/AWS' 카테고리의 다른 글
  • DynamoDB 트래픽 관리 | Throttling, On-Demand, Provisioned, Auto Scaling 이해하기
  • DynamoDB WCU와 RCU란?
  • AWS EFS란?
  • AWS EBS란?
jjaehyeok
jjaehyeok
jjaehyeok 님의 블로그 입니다.
  • jjaehyeok
    jjaehyeok 님의 블로그
    jjaehyeok
  • 전체
    오늘
    어제
    • 분류 전체보기 (108) N
      • Navisafe (15)
        • Infrastructure (13)
        • Data Pipeline (0)
        • Trouble shooting (2)
      • Data Engineering (56) N
        • Airflow (11)
        • Kafka (3)
        • Spark (0)
        • ELK (2)
        • Kubernetes (7)
        • AWS (33) N
        • Flink (0)
      • CodingTest (31)
        • 문제 풀이(Lv1~Lv2) (21)
        • 문제 풀이(Lv3) (10)
        • SQL (0)
      • 알고리즘 정리 (3)
        • 자료구조 (스택, 큐, 해시) (3)
        • 정렬 & 그리디 (0)
        • DFS & BFS (0)
        • 이분탐색 (0)
        • DP (0)
      • 자격증 (1)
        • CKAD (1)
        • DEA-C01 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    documentdb
    Glue
    trouble shooting
    datatransfer
    Redshift
    CKAD
    ECR
    datasync
    AWS
    DEA-C01
    Airflow
    EC2
    RDS
    Kafka
    DynamoDB
    eks
    elk
    k8s
    S3
    batch
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
jjaehyeok
DynamoDB란?
상단으로

티스토리툴바