DynamoDB Streams

DynamoDB テーブルの変更をリアルタイムでキャプチャし、Lambda で処理するイベントソース

AWSイベント駆動

DynamoDB Streams とは

DynamoDB Streams は、DynamoDB テーブルのアイテムの追加・更新・削除をリアルタイムでキャプチャし、Lambda で処理するイベントソースである。CDC (Change Data Capture) の AWS 実装で、テーブルの変更を他のサービスに伝播する。

ユースケース

DynamoDB Streams はテーブルの変更をリアルタイムにキャプチャするため、他のデータストアとの同期や、変更をトリガーとした後続処理に活用できる。イベント駆動アーキテクチャの起点として機能する。

ユースケース 説明
検索インデックスの同期 DynamoDB → OpenSearch
キャッシュの無効化 DynamoDB → Lambda → ElastiCache 削除
集計テーブルの更新 注文追加 → 売上集計を更新
通知 新規注文 → SNS → メール送信
監査ログ 全変更を S3 に保存

アーキテクチャ

DynamoDB テーブルへの書き込みが発生すると、Streams が変更レコードをキャプチャし、Lambda がそれを消費して後続の処理を実行する。Lambda は変更の種類 (INSERT、MODIFY、REMOVE) に応じて処理を分岐できる。

[DynamoDB テーブル][DynamoDB Streams][Lambda][OpenSearch / SNS / S3]

StreamViewType

StreamViewType を以下にまとめる。

タイプ 含まれるデータ
KEYS_ONLY キー属性のみ
NEW_IMAGE 変更後のアイテム
OLD_IMAGE 変更前のアイテム
NEW_AND_OLD_IMAGES 変更前後の両方

注意点

注意点を以下にまとめる。

注意点 対策
順序保証はパーティションキー内のみ 同じキーの変更は順序保証
最大 2 つの Lambda を接続可能 3 つ以上は EventBridge Pipes 経由
24 時間でストリームレコードが期限切れ 処理が遅延すると消失
冪等性が必要 リトライで同じレコードが再送される

実務での活用方法は関連書籍にも詳しい。

この記事は役に立ちましたか?

関連用語

関連する記事