質問: はじめて質問させていただきます。 AWS DynamoDBからAWS CloudSearchへのデータインポートについての質問です。 現在、Swiftにてショッピングアプリの開発を行っています。 特定の商品を検索する際に、DynamoDBのデータをCloudSearchにインポートし、検索ができるような仕組みになっています。 質問なのですが、1日に複数回、DynamoDBに対して、追加・更新された差分データをリアルタイムでCloudSearchに反映させる方法として、どのような手段がありますか? DynamoDBに対して追加・更新する際に、同じテーブル構造の空のテーブル(yyyy_mm_ddを記載したからテーブル)をCloudSearchに反映をさせる方法があると思いますが、1日かかってしまいます(時間単位でアップロードすれば良いかもしれませんが...) この方法以外で、解決方法をご存知の方がいらっしゃったら ご返信いただければ幸いです。 以上、よろしくお願いいたします。
回答: DynamoDBStreams機能を有効にすることでDynamoDBでのレコードの変化を取得できます。 1. DynamoDBでレコードを追加 2. DynamoDB Streams発動→Lambdaにデータがわたる 3. LambdaからCloudSearchへインデックス登録 このようにすれば実現可能かと思いますが如何でしょうか。 蛇足かもしれませんが商品をリアルタイムにインデクシングしたいのであればCloudSearchより ElasticSearchSearchの方が相性が良いでしょう。