들어가며
DynamoDB는 데이터를 빠르게 저장하고 조회하는 NoSQL 데이터베이스이지만, 데이터를 저장한 이후 다른 작업을 자동으로 수행해야 하는 경우도 많습니다. 예를 들어 새로운 주문이 생성되면 알림을 보내거나, 사용자 정보가 수정되면 다른 시스템에도 동일한 내용을 반영해야 할 수 있습니다.
이처럼 DynamoDB의 데이터 변경을 감지하여 후속 작업을 자동으로 수행할 수 있도록 지원하는 기능이 DynamoDB Streams입니다.
이번 글에서는 DynamoDB Streams의 개념과 동작 방식, Lambda와 함께 사용하는 방법에 대해 알아보겠습니다.
1. DynamoDB Streams란?

DynamoDB Streams는 테이블에서 발생하는 데이터 변경 이벤트를 기록하는 기능입니다.
테이블에서 다음과 같은 작업이 발생하면 Streams에 이벤트가 저장됩니다.
- Item 생성(INSERT)
- Item 수정(MODIFY)
- Item 삭제(REMOVE)
즉, DynamoDB 자체를 조회하지 않아도 어떤 데이터가 언제 변경되었는지 이벤트 형태로 확인할 수 있습니다.
2. Streams는 무엇을 저장할까?

Streams에는 데이터 변경에 대한 정보가 저장됩니다.
또한 Streams는 다음과 같은 저장 방식을 선택할 수 있습니다.
- Keys only
- New image
- Old image
- New and old images
서비스 목적에 따라 변경 전 데이터와 변경 후 데이터를 함께 저장할 수도 있습니다.
3. DynamoDB Streams 동작 과정

Streams는 데이터가 변경될 때마다 자동으로 이벤트를 생성합니다.
동작 과정은 다음과 같습니다.
- DynamoDB에 데이터 저장
- DynamoDB Streams에 변경 이벤트 기록
- Lambda가 이벤트를 감지하여 자동 실행
- Lambda가 SNS에 메시지 발행
- SNS가 이메일 또는 SMS 등으로 사용자에게 알림 전송
즉, 애플리케이션이 직접 변경 여부를 확인하지 않아도 데이터 변경을 실시간으로 감지할 수 있습니다.
4. Lambda와 함께 사용하는 예시

예를 들어 쇼핑몰에서 새로운 주문이 생성되었다고 가정해보겠습니다.
사용자가 주문을 생성하면 과정이 자동으로 수행됩니다. 애플리케이션에서 별도의 코드를 실행하지 않아도 Lambda가 Streams 이벤트를 감지하여 필요한 작업을 처리합니다.
이처럼 데이터 변경을 기준으로 자동 실행되는 구조를 이벤트 기반(Event-Driven) 아키텍처라고 합니다.
5. DynamoDB Streams 활용 사례
Streams는 다양한 서비스에서 활용됩니다.
- 주문 생성 후 이메일 발송
- 회원 가입 후 환영 메시지 전송
- 재고 변경 시 캐시 갱신
- 데이터 변경 로그 저장
- OpenSearch 색인 업데이트
- S3 백업
- 다른 DynamoDB 테이블 동기화
특히 데이터 변경 이후 자동으로 수행해야 하는 작업이 있다면 Streams를 많이 활용합니다.
6. DynamoDB Streams의 장점
6-1) 데이터 변경 자동 감지
- 애플리케이션이 직접 변경 여부를 확인할 필요가 없습니다.
6-2) Lambda와 쉬운 연동
- 코드 수정 없이 이벤트를 기반으로 다양한 작업을 자동화할 수 있습니다.
6-3) 이벤트 기반 아키텍처 구현
- 데이터 저장과 후속 작업을 분리하여 시스템 간 결합도를 낮출 수 있습니다.
6-4) 변경 이력 활용
- 변경 전·후 데이터를 저장하여 감사(Audit)나 로그 분석에도 활용할 수 있습니다.
7. 마치며
이번 글를 정리하며 DynamoDB Streams는 단순히 데이터 변경 내용을 기록하는 기능이 아니라, 데이터 변경을 시작점으로 다양한 후속 작업을 자동으로 수행할 수 있도록 지원하는 이벤트 기능이라는 점을 이해할 수 있었습니다.
특히 Lambda와 함께 사용하면 데이터가 생성·수정·삭제되는 순간 필요한 작업을 자동으로 실행할 수 있어 이벤트 기반 아키텍처를 쉽게 구현할 수 있다는 점을 알게 되었습니다. 또한 애플리케이션이 변경 여부를 반복적으로 확인하지 않아도 되므로 시스템 간 결합도를 낮추고 운영을 더욱 효율적으로 구성할 수 있다는 점도 배울 수 있었습니다.
DynamoDB를 활용한 서비스를 설계할 때 데이터 저장 이후 자동화가 필요한 업무가 있다면 Streams와 Lambda를 함께 활용하는 것이 매우 효과적인 방법이 될 수 있다는 것을 알게되었습니다.
'Data Engineering > AWS' 카테고리의 다른 글
| Aurora란? (0) | 2026.07.01 |
|---|---|
| Amazon RDS란? ACID, Lock, Deadlock까지 알아보기 (0) | 2026.06.30 |
| Amazon DynamoDB Accelerator(DAX)란?| DynamoDB 조회 성능을 높이는 방법 (0) | 2026.06.30 |
| DynamoDB Index 이해하기 | LSI, GSI 그리고 Index와 Throttling (1) | 2026.06.29 |
| DynamoDB 트래픽 관리 | Throttling, On-Demand, Provisioned, Auto Scaling 이해하기 (0) | 2026.06.29 |