首页 文章

S3或DynamoDb用于用户存储?

提问于
浏览
0

我想在无服务器架构中使用AWS Lambda和Cognito,并且好奇的是人们想要将S3存储桶用于用户数据存储而不是DynamoDb?什么是利弊?

2 回答

  • 0

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

    AWS S3

    • 它是一个完全托管的文件存储和检索服务 .

    • 非常适合存储用户 Profiles 图片,文件上传等 .

    • 您可以将用户属性存储在JSON文件或多个文件中 . 其中一个挑战是您需要检索整个文件,甚至读取单个属性或保存整个文件以保存单个属性 .

    • 需要构建文件名约定以直接查找文件以便更快地检索或列出文件,并且读取每个文件以查找内部内容的性能成本很高 .

    • 与Dynamodb相比,这将是更便宜的选择 .

    • 不适合存储可能影响应用程序性能的动态更改的用户数据 .

    AWS Dynamodb

    • 它是一个完全管理的NOSQL数据库

    • 建议存储用户属性以进行快速查询,更新和检索 .

    • 内置了查询支持和条件更新 .

    • 可以进行部分更新 .

    • 适用于您需要查询多个用户并进行更新的情况 .

    • 一般比S3贵 .

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

  • 2

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

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

相关问题