Dynamo DB

은채의 성장통·2025년 2월 21일
0

AWS

목록 보기
76/79

AWS DynamoDB 개요 및 주요 특징

1. 개요

Amazon DynamoDB는 완전 관리형(NoSQL) 데이터베이스 서비스로, 높은 가용성, 자동 확장성, 빠른 응답 속도를 제공합니다. 다중 AZ(가용 영역) 복제를 통해 내구성을 보장하며, 서버리스(Serverless) 환경에서 운영이 가능합니다.


2. 주요 특징

2.1. 고가용성 및 내구성

  • DynamoDB는 다중 AZ(Availability Zone) 간 자동 복제를 지원하여, 장애 발생 시에도 데이터가 손실되지 않고 지속적으로 사용할 수 있습니다.

2.2. NoSQL 기반, 트랜잭션 지원

  • DynamoDB는 NoSQL 데이터베이스이지만, ACID 트랜잭션을 지원하여 일관성과 무결성이 중요한 애플리케이션에서도 활용될 수 있습니다.
  • 문서(Document) 및 키-값(Key-Value) 데이터 모델을 지원합니다.

2.3. 보안 (IAM과 통합)

  • AWS IAM(Identity and Access Management)과 통합되어 있어 세밀한 접근 제어가 가능합니다.
  • 암호화 기능(기본 제공)을 통해 저장된 데이터를 보호합니다.

2.4. 오토스케일링(Auto Scaling)

  • 워크로드 증가 시 자동 확장(Auto Scaling) 기능을 통해 읽기/쓰기 용량을 동적으로 조정할 수 있습니다.
  • 프로비저닝(Provisioned) 모드에서는 특정 용량을 미리 할당하며, 온디맨드(On-Demand) 모드에서는 사용량에 따라 자동 확장됩니다.

2.5. 테이블 및 데이터 구조

  • DynamoDB는 테이블(Table) 단위로 데이터를 저장하며, 각 테이블은 다음과 같은 구조를 가집니다.
    • 기본 키(Primary Key): 데이터를 구분하는 고유 키 (생성 시 결정)
    • 항목(Item): 테이블 내에서 하나의 레코드에 해당
    • 속성(Attribute): 각 항목에 포함되는 데이터 (나중에 동적으로 추가 가능)
  • 관계형 데이터베이스(RDBMS)와 달리 스키마리스(Schema-less) 구조로, 속성을 유연하게 추가/제거할 수 있습니다.

2.6. 스토리지 및 성능

  • 큰 객체(파일, 이미지, 동영상 등)를 저장하는 데는 적합하지 않으며, 문자열(String), 숫자(Number), 리스트(List) 등의 데이터 유형을 효율적으로 처리할 수 있습니다.
  • DynamoDB Streams를 사용하면 테이블 변경 사항을 실시간으로 캡처하고, AWS Lambda 및 EventBridge와 연계하여 이벤트 기반 처리를 할 수 있습니다.

3. 테이블 예시 (시각화)

아래는 "고객 주문 테이블"을 예시로 든 DynamoDB 테이블 구조입니다.

OrderID (파티션 키)CustomerID (정렬 키)ProductNameQuantityOrderDate
ORD123CUST001iPhone 1512024-02-19 12:30
ORD124CUST002Galaxy S2422024-02-19 14:00
ORD125CUST001MacBook Pro12024-02-20 09:45
  • 파티션 키(Primary Key): OrderID
  • 정렬 키(Sort Key, 선택사항): CustomerID
  • 속성(Attribute): ProductName, Quantity, OrderDate
  • 테이블을 생성할 때 기본 키를 미리 결정해야 하며, 이후에도 속성을 자유롭게 추가할 수 있습니다.

4. 읽기/쓰기 용량 및 요금 모델

DynamoDB는 두 가지 용량 모드를 제공합니다.

4.1 프로비저닝 모드 (Provisioned Mode)

  • 미리 지정한 읽기/쓰기 용량을 기반으로 운영됩니다.
  • 트래픽이 예측 가능한 경우 적합하며, 초과 요청이 발생하면 처리 속도가 제한될 수 있습니다.
  • *자동 스케일링(Auto Scaling)**을 지원하여 일정 범위 내에서 자동으로 확장됩니다.

4.2 온디맨드 모드 (On-Demand Mode)

  • 워크로드 변화에 따라 자동 확장됩니다.
  • 트래픽 예측이 어려운 경우 적합하며, 사용한 만큼 비용이 청구됩니다.
  • 미리 용량을 설정할 필요가 없음 → 초기 설정이 간편함.
모드특징요금 청구 방식
프로비저닝 모드특정 용량을 설정, Auto Scaling 가능미리 설정한 용량 기준
온디맨드 모드자동 확장, 사전 설정 불필요사용량 기준

5. DynamoDB 활용 사례

DynamoDB는 다음과 같은 분야에서 많이 사용됩니다.

실시간 데이터 처리 → 주문, 결제 트랜잭션 기록

세션 저장소 → 사용자의 로그인 상태 유지

IoT 데이터 수집 → 센서에서 수집된 데이터를 빠르게 저장

게임 리더보드 → 사용자 점수 및 순위 관리

이벤트 기반 시스템 → EventBridge 및 Lambda와 연계


6. 결론

DynamoDB는 높은 확장성, 자동 복제, 트랜잭션 지원, 다양한 용량 모드 제공 등의 강력한 기능을 갖춘 NoSQL 데이터베이스입니다.

워크로드에 따라 프로비저닝 모드온디맨드 모드를 선택할 수 있으며, EventBridge, Lambda 등의 AWS 서비스와 통합하여 이벤트 기반 애플리케이션을 구축할 수 있습니다.

DynamoDB는 스키마리스 구조, 오토스케일링, 다중 AZ 복제 등의 특성을 활용하여 서버리스 환경에서 강력한 데이터베이스 솔루션으로 자리 잡고 있습니다.

profile
인생 별거 없어

0개의 댓글