AWS 超低延迟 Read/Write 数据存储:EFS 与 Dynamodb DAX 与 ElastiCache

AWS Ultra Low Latency Read/Write Data Store: EFS vs Dynamodb DAX vs ElastiCache

我的 Web 应用程序需要极低的延迟 read/write 可以存储为键值对的小数据 blob (<10KB)。我正在考虑 DynamoDB(带 DAX)以及 EFS 和 ElastiCache。 AWS 声称它们都提供低延迟,但我找不到任何头对头比较,而且我也不清楚这三个是否属于同一个联盟。有人可以分享任何见解吗?

您正在尝试使用不同定价模型比较不同用例的不同存储系统。

EFS 是一种文件系统,您无需为其配置存储设备并且可以从多个 EC2 实例进行访问。 EFS 可能适用于您的用例,但您需要管理文件。这意味着您将需要构建数据以适合文件。或者,您可能需要构建键值或 blob/object 存储系统,具体取决于您需要的结构和检索级别。有产品可以为您解决这个问题,例如 S3、DynamoDB、Elasticache Redis 或 Memcached。

S3是blob存储,没有结构,没有数据类型,项目不能更新只能替换。您只能通过列出存储桶中的 blob 来查询。它通常用于存储静态媒体文件。

DynamoDB 是一种非关系型(又名 No-SQL)数据库,可用作文档或键值存储,其中数据是结构化的、强类型的并具有查询功能。最多可存储 400KB 的项目。

Elasticache(Redis 或 Memcached)是键值存储,通常用作 DynamoDB 等持久数据存储前面的缓存。在这种情况下,应用程序需要了解不同的层;管理不同的 API 并处理应用程序中的缓存逻辑。

借助 DAX,您可以无缝集成缓存层,而无需应用程序中的缓存逻辑。 DAX 目前为 DynamoDB 提供直写式缓存。 DAX API 与 DynamoDB API 兼容,如果您的应用程序已经通过使用 DAX 客户端替换 DynamoDB 客户端来使用 DynamoDB,则可以无缝添加缓存层。请记住,DAX 目前仅支持 Java、Node.js、Go、.NET 和 Python 客户端。

所以这真的取决于你的工作量。如果您需要亚毫秒级延迟,而无需为管理缓存层而头疼,并且您的应用程序是 Java、Node.js、Go、.NET 或 Python,那么 DAX 适合您。