記事検索

検索ワードを入力してください。
Sky Tech Blog
【AWS】DynamoDBの​変更を​検知する

【AWS】DynamoDBの​変更を​検知する

AWSのDynamoDBとその関連機能であるDynamoDB StreamsおよびKinesis Data Streams for DynamoDBの技術紹介をします。それぞれの特徴や使用方法、弱点などについて説明します。

Sky株式会社の自社製品もSaaSが増えるなか、クラウドリソースを利用した開発が多岐にわたるようになっています。

今回はAWSのDynamoDBに関する技術紹介です。
DynamoDBへの更新をトリガーとして後続のLambdaを動かす必要があり、その方法と特徴について、今回は2通り調査しました。

DynamoDB Streams

DynamoDBの変更を検知します。
変更をトリガーに後続のLambdaの処理などを行うことができます。
下記のようなイメージです。

使用方法も簡単で、AWSコンソール上から有効にするだけで機能をONにすることができます。
DynamoDB > テーブル > ≪作成したテーブル≫の「エクスポートおよびストリーム」タブから設定できます。

※AWSコンソール上のDynamoDB設定画面のスクリーンショット

変更を検知するだけでなく、どの項目が変わったかを検知し、変更前後のデータを取得することもできるため、とても便利な機能となります。

Kinesis Data Streams for DynamoDB

DynamoDB Streamsはとても便利な機能ですが、DBの更新の順序とStreamsが検知する順序が必ずしも正確ではないという弱点があります。

そんな時に便利な機能がKinesis Data Streams for DynamoDBです。
DynamoDB Streamsをそのまま置き換えて使うことができます。
※Kinesis Data Streamsを事前に作成する必要があります。こちらは料金がかかります。

Kinesis Data StreamsがLambdaに渡すデータストリームレコードの中にあるApproximateCreationDateTime 属性を使用することで、更新発生の順番にソートすることが可能です。

まとめ

今回調査した2通りの方法を使用すれば、DynamoDBの変更をほぼリアルタイムで検知し、後続の処理を自動的に実行することができました。
また、設定次第で更新後の情報だけでなく、更新前の情報も取得することができ、DBの変更の差分も取得することが容易です。

クラウドリソースはかなりの速度で機能追加や変更、削除があります。
また、一つの課題に対しても何通りもソリューションを検討したうえで、スピード、コストが見合ったものを製品開発では選定して対応しています。
クラウド関連の開発をしている皆様の一助になれば幸いです。

最後までお読みいただきありがとうございました。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム