0

我想在无服务器体系结构中使用AWS Lambda和Cognito,并好奇人们的想法是使用S3存储桶来存储用户数据存储,而不是使用DynamoDb?优点/缺点是什么?用于存储用户的S3或DynamoDb?

+0

对于少量的数据,也许你可以看看Cognito数据集? Cognito允许您将最终用户数据保存在包含键值对的数据集中。这些数据与Amazon Cognito身份关联,可以同步,并通过登录和设备访问。它也有离线支持。 – jarmod

回答

0

是否想要快速索引,查询和更新数据(DynamoDB)?

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

1

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

AWS S3

  • 其全面管理的文件存储和检索服务。
  • 高度适用于存储用户的个人资料图片,文件上传&等
  • 您可以存储用户属性的JSON文件或多个文件。其中一个挑战是您需要检索整个文件,甚至读取单个属性或保存整个文件以保存单个属性。
  • 需要构建文件名称约定来直接查找文件以便更快地检索或列出文件,并且读取每个文件以查找内部内容的性能成本很高。
  • 成本方面,与Dynamodb相比,这将是更便宜的选择。
  • 将不适合存储可能影响应用程序性能的动态更改的用户数据。

AWS Dynamodb

  • 其全面管理NOSQL数据库
  • 推荐来存储用户属性进行快速查询,更新和检索。
  • 内置了查询支持和条件更新。
  • 可能做部分更新。
  • 适用于需要查询多个用户并进行更新。
  • 一般比S3昂贵。

它是一种常见的模式一起使用它们通过S3和文件元数据存储文件,并经常在Dynamodb查询属性快速查询得到最好的成本和性能。您还可以设置事件驱动模式以在S3中发生更改时更新Dynamodb。

相关问题