私が構築したい特定のものを解決する方法についてのアイデアを探しています。
アイテムが 2 セットあるとします。各項目は、ほんの数行の JSON です。アイテムが 1 つのセットに追加されるたびに、すぐに (ほぼ) 他のセット全体に対してこれを処理したいと考えています。したがって、セット A にアイテムが追加されます。セット B の各アイテムに対して処理を行います。逆も同様です。
アイテムは API Gateway + Lambda 経由で入ってきます。キュー/ストリームからの Lambda での照合処理。
どの AWS テクノロジーが適していますか? セットがいつ、どのくらいの頻度で変更されるかについては、私にはわかりませんし、明確なパターンもありません。また、できるだけ一貫性を持たせたいと思っています。そしてもちろん、可能な限りサーバーレスで費用対効果の高いものにしたいと考えています。:)
オプションは次のとおりです。
- セットが Aurora に保存されている場合、A の新しいアイテムの一致処理では、毎回データベースから完全なセット B をクエリする必要があります。
- バックグラウンドで DynamoDB ストリームを使用して、DynamoDB に保存されているセット。A の新しいアイテムの照合処理では、Dynamo から完全なセット B をクエリする必要があります。しかし、負荷が急増し、読み取り/書き込みプロビジョニングが不明確なため、適切ではありません
- それぞれのセットを独自の「静的」Kinesis ストリームに配置します。一致処理はアイテムを読み取りますが、トリミングはしません。ストリームは定期的に新しいセットに置き換えられます
私の問題点は、A からのアイテムを処理しているときに、B に何千ものアイテムが一致する可能性があることです。また、A からアイテムを処理するたびに、一部のデータベースから完全なセット B をロードする必要がないようにしたいと考えています。