Dynamo DB 심화기능

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

AWS

목록 보기
77/79

Amazon DynamoDB DAX, Streams, Global Tables 및 백업 기능 정리

1. Amazon DynamoDB DAX (DynamoDB Accelerator)

  • DAX(DynamoDB Accelerator)는 완전 관리형 인메모리 캐시 서비스로, 읽기 성능을 향상시키고 DynamoDB의 읽기 부하를 줄이는 역할을 합니다.

DAX의 주요 특징

  • 완전 관리형, 고가용성 지원: 장애 발생 시에도 서비스 지속 가능.
  • 인메모리 캐시 사용: 데이터베이스를 직접 조회하지 않고 빠르게 응답.
  • 애플리케이션 로직 변경 불필요: 기존 DynamoDB API와 호환되므로, 코드 수정 없이 캐싱 적용 가능.
  • 쿼리 및 스캔 속도 개선: 자주 조회되는 데이터를 DAX 클러스터에서 처리.
  • DAX 클러스터를 통해 DynamoDB에 연결하여 데이터 조회.

DAX 아키텍처

  1. 애플리케이션이 DAX 클러스터에 요청.
  2. DAX에서 캐시된 데이터 제공 (DynamoDB 조회 없이 응답).
  3. DAX에 데이터가 없을 경우, DynamoDB에서 데이터를 가져와 캐싱 후 반환.

2. DynamoDB Streams

DynamoDB Streams는 테이블의 데이터 변경 사항(생성, 수정, 삭제)을 실시간으로 감지하여, 이를 기반으로 이벤트 기반 프로세싱을 수행할 수 있는 기능입니다.

주요 특징

  • 테이블의 모든 변경 사항(INSERT, UPDATE, DELETE)을 캡처.
  • 비동기 이벤트 처리 가능 (Lambda, EventBridge, Kinesis와 통합).
  • 데이터 변경 사항을 활용한 실시간 분석 및 처리 가능.
  • 리전 간 데이터 복제(Global Tables) 활성화 필수 기능.

스트림 유형 비교 (DynamoDB Streams vs Kinesis Data Streams)

기능DynamoDB StreamsKinesis Data Streams
데이터 변경 감지DynamoDB 테이블의 변경 사항 기록애플리케이션에서 생성한 스트리밍 데이터 처리
사용 목적데이터 변경 이벤트 처리 (Lambda 트리거 등)실시간 로그 분석, 데이터 파이프라인 구축
데이터 유지 기간최대 24시간최대 365일 (설정 가능)
트리거 가능 서비스AWS Lambda, EventBridgeLambda, EMR, S3, Redshift, OpenSearch 등
리전 간 데이터 복제Global Tables 필수 요소직접적인 복제 기능 없음
주요 활용 사례테이블 변경 감지, 실시간 동기화실시간 데이터 스트리밍, 대용량 데이터 분석

DynamoDB Streams 활용 사례

  • Lambda 트리거: 테이블 변경 시 자동으로 Lambda 실행.
  • SNS 연계: 변경 사항 발생 시 알림 전송.
  • S3 데이터 백업: 일정 주기로 DynamoDB 데이터를 S3로 백업.
  • 재해 복구 및 데이터 복제: 여러 리전에 데이터 동기화.

3. Global Tables (글로벌 테이블)

Global Tables는 여러 AWS 리전에서 DynamoDB 테이블을 동기화하여, 전 세계 어디서든 짧은 지연시간으로 데이터 읽기/쓰기가 가능하도록 해줍니다.

주요 특징

  • 다중 리전 동기화: 여러 AWS 리전에 테이블을 자동 복제.
  • 고가용성 및 재해 복구 지원: 특정 리전에서 장애 발생 시, 다른 리전에서 지속 사용 가능.
  • DynamoDB Streams 활성화 필수: 데이터 변경 사항을 전파하기 위해 필요.
  • 활용 사례:
    • 글로벌 애플리케이션(사용자 위치에 따라 가까운 데이터센터에서 빠르게 응답).
    • 다중 리전 장애 복구(DR, Disaster Recovery).

Global Tables 아키텍처 시각화

  1. 사용자가 특정 리전(AWS Seoul)에서 데이터를 DynamoDB에 저장.
  2. DynamoDB Streams가 데이터 변경 사항을 감지.
  3. 변경된 데이터가 다른 리전(AWS Tokyo, AWS US-West)으로 자동 동기화.
  4. 다중 리전에서 동일한 데이터에 대해 읽기/쓰기가 가능.

4. DynamoDB TTL (Time-To-Live)

TTL(Time-To-Live) 기능은 설정한 만료 시간(timestamp)이 지나면 항목을 자동 삭제하는 기능입니다.

TTL의 주요 특징

  • 특정 속성에 만료 시간 설정 → 만료된 데이터 자동 삭제.
  • 재해 복구 및 로그 데이터 자동 정리 등에 활용 가능.
  • 비용 절감: 오래된 데이터를 자동 삭제하여 저장 공간 절약.
  • 백그라운드에서 자동 실행 → 애플리케이션 성능에 영향 없음.

TTL 활용 사례

  • 세션 데이터 관리: 로그인 세션 만료 시 자동 삭제.
  • 이벤트 로그 관리: 일정 기간이 지난 로그 데이터 정리.
  • 임시 데이터 저장: 특정 시간 이후 자동 삭제되는 데이터(예: OTP 인증 코드).

5. DynamoDB 데이터 백업 및 S3 통합

DynamoDB는 S3와의 통합을 통해 데이터 백업 및 복원이 가능합니다.

S3 통합 주요 기능

  1. Point-in-Time Recovery (PITR, 지정 시간 복구)
    • 설정한 시점의 DynamoDB 데이터를 복구.
    • 재해 복구 및 데이터 무결성 유지.
    • 특정 시간의 테이블 스냅샷을 생성하여 복구 가능.
  2. 온디맨드 백업 & 복원
    • 수동으로 전체 테이블 백업 가능.
    • 특정 시점의 백업을 S3에 저장 후 필요 시 복원.
  3. DynamoDB 데이터를 S3로 내보내기
    • 데이터 아카이빙: 장기 보관용 데이터 저장.
    • 분석 및 가공: 대규모 데이터 분석을 위해 Athena, Redshift와 연계.
  4. S3에서 DynamoDB로 데이터 복원
    • S3에 저장된 데이터를 가져와 대규모 데이터 변경 실행.
    • 기존 데이터베이스를 새로운 구조로 마이그레이션할 때 활용.

6. DynamoDB 이벤트 기반 처리 흐름 (시각화)

DynamoDB는 스트림을 활용한 이벤트 기반 아키텍처를 구성할 수 있습니다.

아키텍처 흐름

  1. 애플리케이션이 DynamoDB에 데이터를 생성/수정/삭제.
  2. DynamoDB Streams가 변경 사항을 감지.
  3. Lambda가 이벤트 트리거를 실행하여 프로세싱 수행.
  4. 결과를 SNS로 알림 전송 또는 DynamoDB로 다시 저장.
  5. 필요 시 데이터를 S3로 백업하여 데이터 분석 및 복원 가능.

7. 결론

Amazon DynamoDB는 완전 관리형 NoSQL 데이터베이스로, 고가용성, 트랜잭션 지원, 자동 확장성 등의 기능을 제공합니다.

DAX, Streams, Global Tables, TTL, S3 백업 기능을 함께 활용하면 고성능, 글로벌 확장성, 강력한 데이터 복구 기능을 갖춘 완전한 서버리스 데이터 아키텍처를 구축할 수 있습니다.

📌 추천 활용 사례

  • DAX: 읽기 성능 최적화 및 캐싱.
  • DynamoDB Streams: 이벤트 기반 데이터 처리.
  • Global Tables: 다중 리전 데이터 동기화.
  • TTL: 만료 데이터 자동 삭제.
  • S3 백업: 데이터 보관 및 분석.

DynamoDB는 서버리스 환경에서 확장성, 성능, 데이터 복구 기능을 갖춘 강력한 솔루션으로, AWS Lambda, SNS, S3 등과 연계하여 완전한 클라우드 네이티브 데이터 아키텍처를 구축할 수 있습니다.

profile
인생 별거 없어

0개의 댓글