Amazon MemoryDB 功能

為何選擇 MemoryDB?

Amazon MemoryDB 是一種與 Valkey 和 Redis OSS 相容、持久的記憶體資料庫服務,可提供超快效能。它專為具有微型服務架構的現代化應用程式而建置。

MemoryDB 與 Valkey 和 Redis OSS 相容,使客戶能夠使用他們現已在使用的相同靈活且易用的 Valkey 和 Redis OSS 資料結構、API 和命令快速建置應用程式。藉助 MemoryDB,所有資料都存放在記憶體中,這可讓您實現微秒讀取和低於 10 毫秒的寫入延遲和高輸送量。MemoryDB 還使用分散式交易日誌跨多個可用區域 (AZ) 持久存放資料,以實現快速容錯移轉、資料庫復原和節點重新啟動。MemoryDB 會同時提供記憶體內效能和多可用區域耐用性,可用作微服務應用程式的高效能主要資料庫,而無需分開管理快取和耐用性資料庫。

Valkey 和 Redis OSS 相容性

Valkey 和 Redis OSS 是一種快速、開放原始碼的記憶體內鍵值資料結構存放區。開發人員使用 Valkey 和 Redis OSS 實現了低於一毫秒的回應事件,從而讓遊戲、廣告科技、金融服務、醫療保健和 IoT 等產業的即時應用程式每秒處理數百萬個請求。 

Valkey 和 Redis OSS 提供靈活的 API、命令和資料結構 (如串流、集和清單),以建置敏捷且多功能的應用程式。MemoryDB 保持與 Valkey 和 Redis OSS 的相容性,並支援您熟悉的同一組 Valkey 和 Redis OSS 資料類型、參數和命令。這意味著您現已在 Valkey 和 Redis OSS 中使用的程式碼、應用程式、驅動程式和工具可與 MemoryDB 搭配使用,因此您可以快速建置應用程式。

超快效能

MemoryDB 將整個資料集存放在記憶體內,以提供毫秒級讀取延遲、低於 10 毫秒的寫入延遲和高輸送量。其每天可以處理超過 13 萬億個請求,而且每秒最多可支援超過 1.6 億個請求。 使用微服務架構建置的開發人員需要超高效能,因為這些應用程式可能涉及每次使用者互動或 API 呼叫與許多服務元件的互動。您可以利用 MemoryDB 實現極低的延遲,從而為最終使用者提供即時效能。

MemoryDB 包括增強型 IO 多工處理,可大規模顯著改善輸送量和延遲。增強型 IO 多工處理非常適合具有多個用戶端連線的輸送量受限工作負載,其優勢隨工作負載並行層級而擴展。例如,當使用 r6g.4xlarge 節點並執行 5,200 個並行用戶端時,相較於與 Redis OSS 相容的 MemoryDB 第 6 版,您可以實現高達 46% 的輸送量提升 (每秒讀取和寫入操作數),以及高達 21% 的 P99 延遲降低。針對這些類型的工作負載,節點的網路 IO 處理可能成為擴展能力的限制因素。

透過增強型 IO 多工處理,每個專用網路 IO 執行緒會將多個用戶端的命令管道化至 Valkey 和 Redis OSS 引擎,利用 Valkey 和 Redis OSS 高效批次處理命令的能力。

異地同步備份耐久性

除了將整個資料集存放在記憶體中之外,MemoryDB 還會使用分散式交易日誌來提供資料耐用性、一致性和復原能力。MemoryDB 可跨多個 AZ 存放資料,因此您可以實現快速資料庫復原和重新啟動。您可以將 MemoryDB 用作需要低延遲和高輸送量的工作負載的單一主要資料庫服務,而不是分開管理快取以提高速度,以及分開管理額外的關聯式或非關聯式資料庫以提高可靠性。

可擴展性

您可以擴展 MemoryDB 叢集以滿足不斷變化的應用程式需求:透過新增或移除節點來水平擴展,或者透過移動至更大或更小的節點類型來垂直擴展。MemoryDB 支援透過碎片進行寫入擴展及透過新增複本進行讀取擴展。在調整大小操作期間,您的叢集將繼續保持線上狀態並支援讀取和寫入操作。

全代管

MemoryDB 入門很簡單。只需使用 AWS 管理主控台啟動一個新的 MemoryDB 叢集,或者您可以使用 AWS CLI 或 SDK。MemoryDB 資料庫執行個體為所選的節點類型預先設定了適當的參數和設定。您可在幾分鐘內啟動叢集並連接到應用程式,無需其他設定。

MemoryDB 為資料庫執行個體提供 Amazon CloudWatch 指標。您可以使用主控台查看有關叢集的逾 35 個關鍵操作指標,包括運算、記憶體、儲存、輸送量、作用中連線等等。

MemoryDB 透過最新更新自動讓您的叢集保持最新狀態,而您可以輕鬆地將叢集升級到最新版本的 Valkey 和 Redis OSS。

安全性

MemoryDB 在 Amazon Virtual Private Cloud (Amazon VPC) 中執行,可讓您將資料庫隔離在自己的虛擬網路中,並使用產業標準的加密 IPsec VPN 與內部部署 IT 基礎設施連接。此外,使用 MemoryDB 中的 VPC 組態時,您可以設定各種防火牆設定值,並控制對資料庫執行個體的網路存取。

藉助 MemoryDB,可以使用透過 AWS Key Management Service (AWS KMS) 建立和控制的金鑰來加密靜態資料。 另外,使用 AWS Graviton2 節點類型建立的叢集包括始終在線的 256 位 DRAM 加密。MemoryDB 支援使用 Transport Layer Security (TLS) 進行動態加密。

使用與 MemoryDB 整合的 AWS Identity and Access Management (IAM) 功能,您可以控制 IAM 使用者和群組對 MemoryDB 資源採取的動作。例如,您可以設定 IAM 規則以協助確定只有特定使用者具有唯讀存取權限,而管理員則可建立、修改和刪除資源。如需 API 層級許可的詳細資訊,請參閱 Using IAM Policies for MemoryDB。

MemoryDB 使用 Redis OSS 存取控制清單 (ACL),來控制叢集的身分驗證和授權。ACL 讓您能為同一個叢集中的不同使用者定義不同的許可。

與 Kubernetes 整合

適用於 MemoryDB 的 AWS Controllers for Kubernetes (ACK) 讓您能夠直接從 Kubernetes 叢集定義和使用 MemoryDB 資源。這樣一來,您即可利用 MemoryDB 來支援您的 Kubernetes 應用程式,而無需在叢集外部定義 MemoryDB 資源或在叢集內執行和管理記憶體資料庫功能。您可以從 Amazon Elastic Container Registry (Amazon ECR) 下載 MemoryDB ACK 容器映像,並參閱文件以取得安裝指南。 您也可以瀏覽部落格以取得更多詳細資訊。

注意:ACK for MemoryDB 現已正式推出。在 GitHub 頁面上將意見回饋傳送給我們。

 

JSON 支援

除了 Redis OSS 中包括的資料結構外,MemoryDB 還為 JavaScript 物件標記法 (JSON) 文件提供原生支援,且無需額外費用。您可以使用專為 JSON 文件設計和最佳化的內建命令來簡化應用程式開發。MemoryDB 支援部分 JSON 文件更新,以及使用 JSONPath 查詢語言進行的強大搜尋和篩選。使用 Valkey 和 Redis OSS 6.2 及更高版本時可以使用 JSON 支援。如需詳細資訊,請參閱 MemoryDB 文件

成本最佳化

MemoryDB 提供資料分層作為一種成本較低的方式,可將叢集擴展至數百 TB 的容量。除了將資料存放在記憶體中之外,資料分層還透過在每個叢集節點中,使用成本較低的固態硬碟 (SSD),為 MemoryDB 提供一種價格效能比選項。它非常適合定期存取多達 20% 的整個資料集的工作負載,以及在存取 SSD 上的資料時可以容忍額外延遲的應用程式。

使用叢集搭配資料分層時,若可用記憶體容量耗盡,將最近使用最少的項目從記憶體中自動透明地移至本機連接的 NVMe SSD。當您存取存放在 SSD 上的項目時,MemoryDB 會在處理請求之前將其移回記憶體。MemoryDB 資料分層可在以 Graviton2 為基礎的 R6gd 節點上使用。R6gd 節點的總容量 (記憶體 + SSD) 增加了近 5 倍,相較於 R6g 節點 (僅記憶體),在以最大使用率執行時,可協助您節省 60% 以上的儲存成本。假設 500 位元組的字串值,與對記憶體中資料的讀取請求相比,對存放在 SSD 上的資料的請求通常會額外增加 450 微秒的延遲。

MemoryDB 提供預留節點,可讓您以一或三年期的使用承諾,比起隨需節點定價節省多達 55%。預留節點與 MemoryDB 隨需節點互補,讓企業擁有彈性,有助於降低成本。MemoryDB 針對預留節點提供三種付款選項:不預付、部分預付、全額預付,讓您可以根據實際的小時價格,平衡預付款金額。

MemoryDB 預留節點有節點系列和 AWS 區域之內的大小彈性。換言之,使用同一節點系列的所有大小,可自動實施折扣價的預留節點費率。大小有彈性之下,可減少您管理預留節點所需的時間,加上因為不再綁定特定的資料庫節點大小,所以即使資料庫需要更新,也能自折扣享有最大優惠。