AWS a to z - DynamoDB

NTbell·2025년 2월 21일
0

DynamoDB란?

DynamoDB는 완전 관리형 NoSQL 데이터베이스 서비스로, 높은 가용성과 자동 확장성을 제공하는 것이 특징임. AWS에서 제공하는 서비스 중 하나로, 대량의 데이터를 처리하면서 빠른 응답 속도를 유지할 수 있음


읽기/쓰기 용량 모드

DynamoDB는 테이블의 읽기/쓰기 성능을 조절할 수 있도록 두 가지 모드를 제공함

Provisioned Mode (기본 설정)

  • 초당 읽기/쓰기 용량을 사전에 지정하여 운영
  • 사용량이 일정한 경우 비용을 절감 가능
  • Auto Scaling 설정 가능 → 트래픽 변화에 따라 자동으로 확장 가능
  • 비용은 설정한 읽기/쓰기 용량 기준으로 부과

On-Demand Mode

  • 자동 확장/축소 기능을 제공 → 용량을 미리 지정할 필요 없음
  • 사용한 만큼만 비용이 발생 (더 비싸지만 유연함)
  • 예측이 어려운 트래픽 또는 급격한 트래픽 변화가 있는 서비스에 적합

🚀 DynamoDB Accelerator (DAX)

DAX는 DynamoDB 전용의 완전 관리형 인메모리 캐시 서비스로, 읽기 부하를 줄이고 성능을 개선하는 역할을 함.

  • 마이크로초(microseconds) 수준의 지연 시간을 제공
  • 애플리케이션 코드 변경 없이 적용 가능
  • 기본 TTL(Time To Live): 5분
  • ElastiCache보다 개별 객체 캐싱 및 쿼리 캐싱에 강점이 있음

🔹 언제 DAX를 사용해야 할까?

  • 높은 읽기 부하를 처리해야 하는 경우
  • 반복적으로 읽는 데이터가 많을 경우 (ex: 인기 상품 조회)

🔄 스트림 처리 (DynamoDB Streams)

DynamoDB Streams는 테이블의 변경 사항을 실시간으로 캡처하여 다른 서비스와 연동하는 기능을 제공함

스트림 활용 사례

  • 데이터 변경 감지 & 트리거 (예: 상품 구매 시 이메일 영수증 자동 발송)
  • 실시간 사용 분석 (예: 사용자 활동 로그 분석)
  • AWS Lambda 연동하여 이벤트 기반 처리 가능
  • 리전 간 데이터 복제 가능

🔹 DynamoDB Stream vs Kinesis Data Streams

기능DynamoDB StreamKinesis Data Streams
데이터 보관 기간24시간최대 1년
소비자 수 제한있음 (제한적)더 많은 소비자 지원
사용 사례DB 변경 감지 및 트리거데이터 분석, 실시간 이벤트 처리

🌍 글로벌 테이블 (Global Tables)

  • DynamoDB 데이터를 다중 리전에 복제하여 낮은 지연률로 글로벌 접근 가능
  • 모든 리전에서 읽기/쓰기 가능
  • DynamoDB Streams 활성화 필수
  • 글로벌 서비스(예: 다국적 온라인 쇼핑몰)에서 유용하게 사용 가능

💾 재해 복구를 위한 백업

DynamoDB는 두 가지 백업 방식을 제공함.

시점 기반 복구 (Point-in-Time Recovery)

  • 최근 35일간의 데이터를 복구 가능
  • 특정 시점의 데이터를 복원 가능
  • 새로운 테이블을 생성하여 복구 수행

On-Demand 백업

  • 장기적인 데이터 보관 가능
  • 수동으로 삭제하기 전까지 유지됨
  • 성능 저하 없이 백업 가능
  • AWS Backup을 통해 백업 관리 가능
  • 리전 간 백업 가능

📌 복구 시 신규 테이블을 생성해야 함!


🐈 정리

DynamoDB는 NoSQL 기반의 확장성과 성능을 보장하는 강력한 데이터베이스 서비스이며, 읽기/쓰기 모드, 스트림 처리, 글로벌 테이블, 백업 등 다양한 기능을 활용하면 더욱 강력한 성능을 제공할 수 있음!

profile
최종빈의 컴퓨터교실

0개의 댓글

관련 채용 정보