我的web应用程序需要极低延迟的小数据blob (<10KB)的读/写,这些数据可以存储为键-值对。我正在考虑DynamoDB (使用DAX)、EFS和ElastiCache。AWS声称它们都提供低延迟,但我找不到任何head-2-head比较,而且我也不清楚这三个是否在同一级别。有没有人可以分享一些见解?
发布于 2017-10-07 01:24:24
您正在尝试比较具有不同定价模型的不同使用情形的不同存储系统。
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兼容,如果您的应用程序已经在使用DynamoDB,则可以通过用DAX客户端替换DynamoDB客户端来无缝添加缓存层。请记住,DAX目前只支持Java、Node.js、Go、.NET和Python客户端。
所以这真的取决于你的工作负载。如果您需要亚毫秒级的延迟,而没有管理缓存层的麻烦,并且您的应用程序是Java、Node.js、Go、.NET或Python,那么DAX就是您的选择。
https://stackoverflow.com/questions/46608905
复制相似问题