ElastiCache 的運作方式 - Amazon ElastiCache

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

ElastiCache 的運作方式

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

快取和快取引擎

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

注意

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

ElastiCache 的運作方式

ElastiCache Serverless

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

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

主要優點

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

  • 按使用付費:使用 ElastiCache Serverless 時,您只需支付工作負載在快取上儲存的資料和使用的運算費用。請參閱 定價維度

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

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

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

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

圖中顯示 ElastiCache Serverless 快取操作,從可用區域到客戶 VPC,再到服務 VPC。

當您建立新的無伺服器快取時,ElastiCache 會在 VPC 中您選擇的子網路中建立虛擬私有雲端 (VPC) 端點。您的應用程式可透過這些 VPC 端點連線到快取。

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

當您的應用程式建立新的快取連線時,Network Load Balancer 會將請求傳送至代理節點。當您的應用程式執行快取命令時,連線至應用程式的代理節點會在快取中的快取節點上執行請求。代理層會從用戶端抽象化快取叢集拓撲和節點。這可讓 ElastiCache 聰明地進行負載平衡、橫向擴展和新增快取節點、在快取節點發生故障時進行更換,以及更新快取節點上的軟體,這些全都不會影響應用程式的可用性,也不必重設連線。

自行設計的 ElastiCache 叢集

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

主要優點

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

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

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

下圖說明 ElastiCache 自行設計叢集的運作方式。

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

定價維度

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

資料儲存

您需要支付儲存在 ElastiCache Serverless 中的資料費用,以 GB 小時數為單位計費。ElastiCache Serverless 會持續監控儲存在快取中的資料、每分鐘多次取樣,並計算每小時平均值,以判斷快取的資料儲存用量 (以 GB 小時數為單位)。每個 ElastiCache Serverless 快取的儲存資料最低計量單位為 1 GB。

ElastiCache 處理單元 (ECPU)

您需要針對應用程式在 ElastiCache Serverless 上執行的請求,以 ElastiCache 處理單元 (ECPU) 為單位付費,此單元同時包括 vCPU 時間和傳輸的資料。

  • 簡單的讀取和寫入傳輸的每 KB 資料需要 1 個 ECPU。例如,最多傳輸 1 KB 資料的 GET 命令會消耗 1 個 ECPU。傳輸 3.2 KB 資料的 SET 請求將會消耗 3.2 個 ECPU。

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

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

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

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

ElastiCache Serverless 會發出稱為 ElastiCacheProcessingUnits 的新指標,有助於了解您的工作負載所消耗的 ECPU。

節點小時數

您可以藉由選擇 EC2 節點系列、大小、節點數,以及在可用區域之間的放置來自行設計快取叢集。自行設計叢集時,您需以每小時為單位支付每個快取節點的費用。

ElastiCache 備份

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