对于由许多不同服务共享的简单数据库(本质上只是一个 key/value 存储),最好的 AWS 服务是什么?

What's the best AWS service to use for a simple database (essentially just a key/value store) shared by a number of different services?

我们有许多(微)服务,有些像单个 lambda 函数一样简单,有些是完整的 RDS 应用程序。他们都需要做的一件事是访问外部 ID 密钥映射。也就是说,它们都传递了某种类型的 ID,但需要在响应中包含与该 ID 关联的 "name" 字段。基本上,只是一个 key/value 商店。

我可以构建一个单独的微服务来管理这些映射(也许仍然会),但这也需要简单的数据库。

我的服务通常不会获得大量吞吐量,但我需要它们具有高性能。

我想让它保持便宜,而且我希望它的维护成本尽可能低。

基本上,我想要一些东西 "Serverless"(即不需要正在进行的 EC2 实例或 RDS 实例 运行),访问速度快且直接。

我考虑过让每个 "key" 成为一个 S3 键,值成为对象,但是当我需要一次访问一堆时,这并不是超级高效的。 (我应该研究红移光谱吗?那样做是不是太过分了?如果是的话有关系吗?)

我知道 AWS 曾经提供过 simpledb,这可能基本上就是我所追求的。那么现在最接近的是什么?

感谢您的建议!

你可以使用 DynamoDB、RDS 或 S3,我不推荐 SimpleDB。

至于什么是"best"我想这取决于要求是什么:"better"或"worse"是什么方面的?易于开发?潜伏?可用性? regional/multi-region?等等

从技术上讲,SimpleDB still exists in several of the older regions

但 AWS 从来没有谈论过它。

即使是 SimpleDB FAQ 似乎也更多地谈论 DynamoDB 而不是 SimpleDB。

Q: How does Amazon DynamoDB differ from Amazon SimpleDB? Which should I use?

Both services are non-relational databases that remove the work of database administration. Amazon DynamoDB focuses on providing seamless scalability and fast, predictable performance. It runs on solid state disks (SSDs) for low-latency response times, and there are no limits on the request capacity or storage size for a given table.

https://aws.amazon.com/simpledb/faqs/

似乎没有什么理由将 DynamoDB 以外的任何东西视为 SimpleDB 的后继服务的 "closest thing"——尽管不可否认这有点像说喷气式飞机是最接近单机的东西——发动机双翼飞机。但它们都是托管的 NoSQL 数据库。

以前,DynamoDB 的定价方式使其更适合大型工作负载,但由于 DynamoDB 现在支持 per-request pricing,我看不出有任何理由不采用这种方式您描述的应用程序。以前,DynamoDB 要求您订阅一定级别的容量,该容量始终可用,但您需要付费,无论您是否需要和使用它。该选项仍然存在,但每个请求对于很多用例来说看起来都不错。如果您希望将数据自动复制到多个区域以提高查找性能,它还支持 "global tables,"。