ElastiCache 運作方式 - Amazon ElastiCache

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

ElastiCache 運作方式

您可以在這裡找到 ElastiCache 部署主要元件的概觀。

快取和快取引擎

快取是記憶體內資料存放區,可用來存放快取的資料。一般而言,您的應用程式會在快取中快取經常存取的資料,以最佳化回應時間。 ElastiCache 提供兩種部署選項:無伺服器和自行設計的叢集。請參閱 選擇部署選項

注意

Amazon ElastiCache 適用於 Valkey、Redis OSS和 Memcached 引擎。如果您不確定要使用哪個引擎,請參閱本指南中的比較 ValkeyOSS、Redis 和 Memcached 自行設計的快取

ElastiCache 運作方式

ElastiCache 無伺服器

ElastiCache Serverless 可讓您建立快取,而不必擔心容量規劃、硬體管理或叢集設計。您只需為您的快取提供名稱,即可收到單一端點,您可以在 Valkey、Redis OSS或 Memcached 用戶端中設定,以開始存取快取。

注意
  • ElastiCache Serverless 會以叢集模式執行 Valkey、Redis OSS或 Memcached,且僅與支援 的用戶端相容TLS。

主要優點

  • 無容量規劃:無ElastiCache 伺服器可消除規劃容量的需求。無 ElastiCache 伺服器會持續監控快取的記憶體、運算和網路頻寬使用率,並垂直和水平擴展。它可一邊讓快取節點的大小增加,同時一邊啟動橫向擴展操作,以確保快取隨時可因應您應用程式的需求擴展。

  • P ay-per-use:使用 ElastiCache Serverless 時,您需為快取上工作負載所儲存和運算的資料付費。請參閱 定價維度

  • 高可用性:無ElastiCache 伺服器會自動跨多個可用區域 (AZ) 複寫您的資料,以取得高可用性。它會自動監控底層快取節點,並且在發生故障時進行替換。它為每個快取提供 99.99% SLA 的可用性。

  • 自動軟體升級:無ElastiCache 伺服器會自動將快取升級至最新的次要和修補程式軟體版本,而不會對您的應用程式造成任何可用性影響。當新的主要版本可用時, ElastiCache 會傳送通知給您。

  • 安全性:Serverless 一律會加密傳輸中的資料和靜態資料。您可以使用服務受管金鑰或使用您自己的客戶受管金鑰來加密靜態資料。

下圖說明 ElastiCache Serverless 的運作方式。

從可用區域到客戶,VPC再到服務 的無 ElastiCache 伺服器快取操作圖表VPC。

當您建立新的無伺服器快取時, 會在您選擇的子網路中 ElastiCache 建立 Virtual Private Cloud (VPC) 端點VPC。您的應用程式可以透過這些VPC端點連線至快取。

使用 ElastiCache Serverless,您會收到應用程式連線的單一DNS端點。當您請求端點的新連線時, ElastiCache Serverless 會透過代理層處理所有快取連線。代理層有助於減少複雜的用戶端組態,因為在基礎叢集發生變更時,用戶端不需要重新探索叢集拓撲。代理層是一組代理節點,可使用 Network Load Balancer 處理連線。

當您的應用程式建立新的快取連線時,Network Load Balancer 會將請求傳送至代理節點。當您的應用程式執行快取命令時,連線至應用程式的代理節點會在快取中的快取節點上執行請求。代理層會從用戶端抽象化快取叢集拓撲和節點。這 ElastiCache 可讓 以智慧方式載入平衡、橫向擴展和新增快取節點、在快取節點失敗時取代快取節點,以及更新快取節點上的軟體,所有這些都不會影響您的應用程式或必須重設連線。

自行設計的 ElastiCache 叢集

您可以選擇快取節點系列、大小和 ElastiCache 叢集的節點數量,來設計自己的叢集。自行設計叢集能讓您更精準控制,並選擇快取中的碎片數目,以及每個碎片中的節點數目 (主要和複本)。您可以選擇OSS在叢集模式下操作 Valkey 或 Redis,方法是建立具有多個碎片的叢集,或使用單一碎片在非叢集模式下操作。

主要優點

  • 設計您自己的叢集:使用 ElastiCache,您可以設計自己的叢集,然後選擇要放置快取節點的位置。例如,如果您希望犧牲應用程式的高可用性來換取低延遲,可以選擇在單一 AZ 中部署快取節點。或者,您可以使用多個節點來設計叢集AZs,以達到高可用性。

  • 精細控制:在自行設計叢集時,您可以透過微調快取的設定來進行更精準的控制。例如,您可以使用 Valkey 和 Redis OSS 參數Memcached 專用參數 來設定快取引擎。

  • 垂直和水平擴展:您可以選擇在需要時增加或減少快取節點大小來手動擴展叢集。您也可以透過新增碎片或新增更多複本至碎片來進行水平擴展。您也可以使用 Auto-Scaling 功能,根據排程或快取上的 CPU和記憶體用量等指標來設定擴展。

下圖說明 ElastiCache 自行設計的叢集如何運作。

從可用區域到客戶,VPC再到 ElastiCache 受管快取節點, ElastiCache 自行設計的叢集操作圖表。

定價維度

您可以在兩個部署選項 ElastiCache 中部署 。部署 ElastiCache Serverless 時,您需要為以 GB 小時為單位儲存的資料支付用量,並以 ElastiCache 處理器 (ECPU) 為單位計算。選擇設計自己的 ElastiCache 叢集時,您每小時需支付快取節點用量的費用。請參閱此處的定價詳細資訊。

資料儲存

您需為儲存在 ElastiCache Serverless 中的資料支付 gigabyte-hours (GB-hrs) 的帳單費用。 ElastiCache 無伺服器會持續監控儲存在快取中的資料,每分鐘取樣多次,並計算每小時平均值,以判斷快取的資料儲存用量,以 GB 為單位。每個無 ElastiCache 伺服器快取都會計量至少儲存 1 GB 的資料。

ElastiCache 處理單位 (ECPUs)

您需為應用程式在 ElastiCache Serverless in ElastiCache Processing Units (ECPUs) 上執行的請求付費,該單位包含 vCPU 時間和傳輸的資料。

  • 簡單讀取和寫入需要 1 ECPU 個傳輸的資料千位元組 (KB)。例如,傳輸最多 1 KB 資料的GET命令會耗用 1 ECPU。傳輸 3.2 KB 資料的SET請求將耗用 3.2 ECPUs。

  • 使用 Valkey 和 Redis OSS時,ECPUs根據兩個維度中的較高者,會耗用更多 vCPU 時間並傳輸更多資料的命令。例如,如果您的應用程式使用 HMGET命令, 會耗用 3 倍的 vCPU 時間作為簡單 SET/GET 命令,並傳輸 3.2 KB 的資料,則會耗用 3.2 ECPU。或者,如果只傳輸 2 KB 的資料,則會耗用 3 個 ECPUs。

  • 使用 Valkey 和 Redis 時OSS,需要額外 vCPU 時間的命令會按比例消耗更多 ECPUs。例如,如果您的應用程式使用 Valkey 或 Redis OSSHMGET命令 ,並且將 vCPU 時間的 3 倍作為簡單 SET/GET 命令,則會消耗 3 倍ECPUs。

  • 使用 Memcached 時,在多個項目上操作的命令會按比例消耗更多 ECPUs。例如,如果您的應用程式對 3 個項目執行多點擷取,則會耗用 3 個 ECPUs。

  • 使用 Memcached,ECPUs根據兩個維度中的較高者,在更多項目上操作並傳輸更多資料消耗的命令。例如,如果您的應用程式使用 GET命令, 會擷取 3 個項目,並傳輸 3.2 KB 的資料,則會耗用 3.2 ECPU。或者,如果只傳輸 2 KB 的資料,則會耗用 3 個 ECPUs。

ElastiCache Serverless 會發出名為 的新指標ElastiCacheProcessingUnits,協助您了解工作負載ECPUs耗用的 。

節點小時數

您可以選擇EC2節點系列、大小、節點數量和跨可用區域的位置,以選擇設計自己的快取叢集。自行設計叢集時,您需以每小時為單位支付每個快取節點的費用。

ElastiCache 備份

備份是 point-in-time無伺服器快取的副本,或是 Valkey 或 Redis OSS自行設計的叢集。ElastiCache 可讓您隨時備份資料或設定自動備份。備份可用來還原現有的快取或植入新快取。備份包含快取中的所有資料加上一些中繼資料。如需詳細資訊,請參閱 快照和還原