DynamoDBのデータ継続的な保持を実現するインクリメンタルエクスポートのススメ☝AWS SDP認定企業のエキスパートが解説します😎

DynamoDBのデータ継続的な保持を実現するインクリメンタルエクスポートのススメ☝AWS SDP認定企業のエキスパートが解説します😎

皆さん、こんにちは!今回は、DynamoDBのインクリメンタルエクスポート機能を使って、データを継続的に保持する方法について解説します。

DynamoDBのデータ活用、特にオフライン分析や、別テーブルへのデータ同期などを考えている皆さん!テーブルサイズが大きくなってくると、フルエクスポートは時間とコストがかかってしまいますよね?そこで便利なのが、今回ご紹介する「インクリメンタルエクスポート」です!

インクリメンタルエクスポートとは?

DynamoDBのインクリメンタルエクスポートは、前回エクスポートした時点からのデータの変更分のみをAmazon S3にエクスポートする機能です。これにより、データの鮮度を保ちつつ、フルエクスポートよりも効率的にデータをエクスポートできます。

継続的なエクスポート

具体的な動作を見ていきましょう。

  1. まず、フルエクスポートを実行します。これは特定の時点におけるテーブルの内容全体のスナップショットを取得します。
  2. 次に、定期的なインクリメンタルエクスポートを実行します。デフォルトでは15分間隔で実行され、前回のエクスポート時点からの変更分が取得されます。

ポイントは、データの時間的な連続性を担保するために、フルエクスポートの終了時間と最初のインクリメンタルエクスポートの開始時間を一致させることです。また、各インクリメンタルエクスポートの終了時間と次のインクリメンタルエクスポートの開始時間も同様に一致させる必要があります。

ソリューションの概要

今回ご紹介する「DCIE(DynamoDB Continuous Incremental Exports)」は、GitHubで公開されているオープンソースソリューションです。 Amazon EventBridge Schedulerで繰り返しワークフローをスケジュールし、AWS Step Functionsでワークフロー内のオーケストレーションを管理します。

DCIEのデプロイには、以下の5つの主要な入力値が必要です。

  • スタック名:複数のDynamoDBテーブルに対してデプロイメントを複数回使用できるようにする
  • ソースDynamoDBテーブルの名前
  • デプロイメントエイリアス:テーブルとインフラストラクチャを簡単にマッピングできるようにする
  • エクスポート成功通知を受信するためのメールアドレス
  • エクスポート失敗通知を受信するためのメールアドレス

Step Functionsの状態マシンは、AWS Systems Managerの機能であるParameter Storeを使用して状態を維持します。

DCIEは、AWS Cloud Development Kit (AWS CDK)を使用してデプロイできます。カスタマイズのために上記入力値のみを提供します。また、カスタムS3バケット、S3プレフィックス、15分のデフォルトウィンドウよりも広い時間枠、10秒のデフォルト間隔よりも少ない/多い頻度でエクスポートが完了したかどうかを確認する間隔など、オプションの構成も提供できます。

Step Functionsワークフローは、指定されたテーブルが存在し、ポイントインタイムリカバリ(PITR)が有効になっていることを確認するためのサニティチェックから始まります。 PITRは、S3機能へのエクスポートの前提条件です。

ワークフローには、初期フルエクスポートを実行するためのツリーと、後続のすべての増分エクスポートを実行するためのツリーの2つの主要なツリーがあります。それぞれが作業を開始し、完了またはエラーを定期的にチェックし、それらを処理します。

DCIEのデプロイと詳細については、GitHubリポジトリのREADMEを参照してください。

コスト

  • PITRを有効にするための継続的な料金(まだ有効になっていない場合、テーブルのサイズに基づく)
  • 初期フルエクスポート(テーブルのサイズに基づく)
  • 繰り返し行われる各インクリメンタルエクスポート(それぞれ、処理されるデータのサイズに基づき、これは時間枠内の変更の数に比例する)
  • オブジェクトを書き込み、データを保存するためのAmazon S3コスト(ストレージは当然ながら時間とともに増加する)
  • AWS Lambda、Amazon Simple Notification Service (Amazon SNS)、Amazon CloudWatch Logsの使用コスト

まとめ

今回の記事では、DynamoDBのインクリメンタルエクスポート機能と、継続的なデータエクスポートを実現するオープンソースソリューション「DCIE」をご紹介しました。 DynamoDBのデータ活用において、効率的かつ効果的なデータ連携を実現する上で、ぜひ本記事の内容をご活用ください。

AWSモダナイズ開発データ分析基盤構築とデータ活用支援、基幹業務システムのUI.UX刷新はお気軽にお問い合わせください。