我的Web应用程序需要极低延迟的小数据blob(<10KB)读/写,可以存储为键值对。我正在考虑使用DynamoDB(使用DAX)和EFS以及ElastiCache。 AWS声称他们都提供低延迟,但我找不到任何头2对比,而且我不清楚这三个是否甚至在同一个联盟。有人可以分享任何见解吗?
答案 0 :(得分:11)
您正尝试使用不同的定价模式比较不同用例的不同存储系统。
EFS是一个不需要配置存储设备并且可以从多个EC2实例访问的文件系统。 EFS可能适用于您的用例,但您需要管理文件。这意味着您需要构建数据以适应文件。或者,您可能需要根据所需的结构和检索级别构建键值或blob /对象存储系统。有些产品可以解决这个问题,例如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客户端。
所以这真的取决于你的工作量。如果你需要亚毫秒的延迟,而不需要管理缓存层,而你的应用程序是Java或Node.js,那么DAX就适合你。