AWS超低延迟读/写数据存储:EFS vs Dynamodb DAX与ElastiCache

问题描述:

我的web应用程序需要极低延迟读取/写入可存储为键值对的小数据块(< 10KB)。我正在考虑DynamoDB(使用DAX)以及EFS和ElastiCache。 AWS声称他们都提供低延迟,但我找不到任何头对头的比较,而且我不清楚这三个人是否在同一联盟。有人可以分享任何见解吗?AWS超低延迟读/写数据存储:EFS vs Dynamodb DAX与ElastiCache

+0

我听说过太多的EFS性能问题来推荐它用于这种类型的事情。具有DAX和ElastiCache(Redis)的DynamoDB在性能方面将具有可比性。你应该检查每一个的能力(和限制),并根据哪一个最适合你的需求来挑选。 –

您正试图比较不同的存储系统与不同的定价模型的不同用例。

EFS是您不需要调配存储设备并可以从多个EC2实例访问的文件系统。 EFS可能适合您的用例,但您需要管理文件。这意味着您需要构建数据以适应文件。或者,您可能需要根据所需的结构和检索级别构建键值或Blob /对象存储系统。有些产品可以为您解决此问题,例如S3,DynamoDB,Elasticache Redis或Memcached。

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

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

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

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

所以它真的取决于你的工作量。如果您需要亚毫秒级的延迟,而不需要管理缓存层,并且您的应用程序是Java或Node.js,那么DAX就是为您服务的。