DynamoDB Streams
DynamoDB テーブルの変更をリアルタイムでキャプチャし、Lambda で処理するイベントソース
AWSイベント駆動
DynamoDB Streams とは
DynamoDB Streams は、DynamoDB テーブルのアイテムの追加・更新・削除をリアルタイムでキャプチャし、Lambda で処理するイベントソースである。CDC (Change Data Capture) の AWS 実装で、テーブルの変更を他のサービスに伝播する。
ユースケース
| ユースケース | 説明 |
|---|---|
| 検索インデックスの同期 | DynamoDB → OpenSearch |
| キャッシュの無効化 | DynamoDB → Lambda → ElastiCache 削除 |
| 集計テーブルの更新 | 注文追加 → 売上集計を更新 |
| 通知 | 新規注文 → SNS → メール送信 |
| 監査ログ | 全変更を S3 に保存 |
アーキテクチャ
[DynamoDB テーブル] → [DynamoDB Streams] → [Lambda] → [OpenSearch / SNS / S3]
StreamViewType
| タイプ | 含まれるデータ |
|---|---|
| KEYS_ONLY | キー属性のみ |
| NEW_IMAGE | 変更後のアイテム |
| OLD_IMAGE | 変更前のアイテム |
| NEW_AND_OLD_IMAGES | 変更前後の両方 |
注意点
| 注意点 | 対策 |
|---|---|
| 順序保証はパーティションキー内のみ | 同じキーの変更は順序保証 |
| 最大 2 つの Lambda を接続可能 | 3 つ以上は EventBridge Pipes 経由 |
| 24 時間でストリームレコードが期限切れ | 処理が遅延すると消失 |
| 冪等性が必要 | リトライで同じレコードが再送される |
実務での活用方法は関連書籍にも詳しい。