Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services S3或DynamoDb用于用户存储?_Amazon Web Services_Amazon S3_Amazon Dynamodb_Amazon Cognito_Serverless Architecture - Fatal编程技术网

Amazon web services S3或DynamoDb用于用户存储?

Amazon web services S3或DynamoDb用于用户存储?,amazon-web-services,amazon-s3,amazon-dynamodb,amazon-cognito,serverless-architecture,Amazon Web Services,Amazon S3,Amazon Dynamodb,Amazon Cognito,Serverless Architecture,我想在一个无服务器架构中使用AWS Lambda和Cognito,很好奇人们的想法是使用S3存储桶来存储用户数据,而不是像DynamoDb这样的东西?利/弊是什么 是否要快速索引、查询和更新数据(DynamoDB) 或者您只是想将其存储在一个平面文件中,该文件在更新时必须完全覆盖,并且无法轻松查询其内容(S3)?您可以根据不同类型的用户数据和查询需要使用其中一个或两个。此外,您还可以将基本的用户配置文件数据保存在Cognito同步存储中 AWS S3 它是一个完全管理的文件存储和检索服务 非常

我想在一个无服务器架构中使用AWS Lambda和Cognito,很好奇人们的想法是使用S3存储桶来存储用户数据,而不是像DynamoDb这样的东西?利/弊是什么

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


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

您可以根据不同类型的用户数据和查询需要使用其中一个或两个。此外,您还可以将基本的用户配置文件数据保存在Cognito同步存储中

AWS S3

  • 它是一个完全管理的文件存储和检索服务
  • 非常适合存储用户配置文件图像、文件上传等
  • 您可以将用户属性存储在JSON文件或多个文件中。其中一个挑战是,即使要读取单个属性,也需要检索整个文件,或者要保存单个属性,也需要保存整个文件
  • 需要建立文件名约定以直接查找文件,以便更快地检索或列出文件,并且读取每个文件以查找内部内容,这在性能上代价高昂
  • 与Dynamodb相比,从成本角度来看,这将是一个更便宜的选择
  • 不适合存储可能影响应用程序性能的动态变化的用户数据
自动气象站发电机

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

通过将文件存储在S3和文件元数据中,并经常在Dynamodb中查询属性以进行快速查询,将它们结合使用以获得最佳的成本和性能。您还可以设置事件驱动模式,以便在S3发生更改时更新Dynamodb。

对于少量数据,您可以查看Cognito数据集?Cognito允许您将最终用户数据保存在包含键值对的数据集中。该数据与Amazon Cognito标识相关联,可以同步,并跨登录和设备访问。它也有离线支持。