2

我想在无服务器架构中使用 AWS Lambda 和 Cognito,并且很好奇人们将 S3 存储桶用于用户数据存储而不是 DynamoDb 之类的想法?有什么优点/缺点?

4

2 回答 2

6

您可以根据不同类型的用户数据和查询需求使用其中一种或两种。此外,您还可以在 Cognito Sync 商店中保留基本的用户配置文件数据。

AWS S3

  • 它是一项完全托管的文件存储和检索服务。
  • 非常适合存储用户资料图片、文件上传等。
  • 您可以将用户属性存储在一个 JSON 文件或多个文件中。挑战之一是您需要检索整个文件甚至读取单个属性或保存整个文件以保存单个属性。
  • 需要建立文件名约定以直接查找文件以更快地检索或列出文件,并且读取每个文件以查找内部内容在性能上是昂贵的。
  • 在成本方面,与 Dynamodb 相比,这将是更便宜的选择。
  • 不适合存储会影响应用程序性能的动态变化的用户数据。

AWS 动态数据库

  • 它是一个完全托管的 NOSQL 数据库
  • 建议存储用户属性以进行快速查询、更新和检索。
  • 内置查询支持和条件更新。
  • 可以进行部分更新。
  • 适用于需要查询多个用户和更新的情况。
  • 通常比 S3 更昂贵。

通过将文件存储在 S3 和文件元数据中,并在 Dynamodb 中频繁查询属性以实现快速查询,这是一种将它们一起使用以获得最佳成本和性能的常见模式。您还可以设置事件驱动模式以根据 S3 中的更改更新 Dynamodb。

于 2017-08-30T01:43:19.563 回答
0

您想快速索引、查询和更新数据(DynamoDB)吗?

或者您只是想将其存储在一个平面文件中,该文件在更新时必须被完全覆盖并且不能轻易地查询其内容(S3)?

于 2017-08-29T22:29:10.430 回答