AWS Data store选择

时间:2018-05-17 18:31:43

标签: amazon-web-services amazon-dynamodb

我正在开发一个创建应用程序的项目。应用程序将根据值列表检查输入,并返回响应。您可以认为我正在验证学生是否有健身房会员资格。

在我的用例中,值的大小列表可能小到数千,而且数百万。 此外,我可能希望每天更新列表,甚至删除列表并从我的数据源创建一个新列表。

在这个原因中我可以使用的最佳AWS数据存储是什么?我正在考虑使用dynamo DB。

2 个答案:

答案 0 :(得分:1)

如果你的用例是“这个条目是否存在于此表中?”,那么 DynamoDB 是一个很好的选择,因为它会很快返回结果并且有没有基础设施可以管理。

您还可以使用AWS API Gateway和AWS Lambda完全无服务器,因此您的整个应用程序无需服务器即可运行,并可根据负载自动扩展。

其他选择是:

  • 使用Amazon RDS的传统SQL数据库,但这对于所述用例来说是过度的
  • 存储在Amazon S3中的对象,只需查询该对象是否存在。 (您可以将Amazon S3视为一个非常大的NoSQL数据库。)

答案 1 :(得分:0)

DynamoDB 可能适合您的用例。但是,你提到一些让我质疑的东西:

  

在我的用例中,值的大小列表可能小到数千,而且数百万。此外,我可能希望每天更新列表,甚至删除列表并从我的数据源创建一个新列表。

与使用RDS / MySQL / Aurora的传统类SQL环境不同,在DynamoDB中,您无法执行单个查询来删除或更新全部或部分项目。

实际上,如果您有数百万个需要更新或删除的项目,那么DynamoDB可能不是您的最佳选择。这是因为在DynamoDB中,必须单独更新或删除每个项目。

此外,DynamoDB按照“写作员”的标准向您收费,"每个写工作者每秒可以执行一次删除/更新。因此,如果您有数百万行需要删除或更新,则需要有足够的工作人员来执行此操作。这可能是昂贵的,特别是如果这些变化同时发生并且#34; (与全天的传播相比)。

显然,您可以删除和更新Dynamo中的项目。您可以利用DynamoDB Streams处理新项目;您可以添加生存时间,以便在48小时后删除记录(最小);您可以使用自动缩放来增加工作人员以处理可预测的增长。或者,您可以使用SQS或其他技术对您的更新进行排队和零碎。

然而,这些都需要精心设计(在我看来比传统的RDS要多得多)。如果您有更新/删除繁重的应用程序,我建议使用关系数据库。