1

我的web應用程序需要極低延遲讀取/寫入可存儲爲鍵值對的小數據塊(< 10KB)。我正在考慮DynamoDB(使用DAX)以及EFS和ElastiCache。 AWS聲稱他們都提供低延遲,但我找不到任何頭對頭的比較,而且我不清楚這三個人是否在同一聯盟。有人可以分享任何見解嗎?AWS超低延遲讀/寫數據存儲:EFS vs Dynamodb DAX與ElastiCache

+0

我聽說過太多的EFS性能問題來推薦它用於這種類型的事情。具有DAX和ElastiCache(Redis)的DynamoDB在性能方面將具有可比性。你應該檢查每一個的能力(和限制),並根據哪一個最適合你的需求來挑選。 –

回答

4

您正試圖比較不同的存儲系統與不同的定價模型的不同用例。

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就是爲您服務的。