- 資料庫›
- Amazon Elasticache›
- Amazon ElastiCache 常見問答集
Amazon ElastiCache 常見問答集
一般問題
什麼是 Amazon ElastiCache?
Amazon ElastiCache 是一項 Web 服務,可精簡 Valkey、Memcached 或 Redis OSS 協定相容快取在雲端的部署和執行。ElastiCache 允許您從快速、受管的記憶體系統中擷取資訊,而不是依賴較慢的磁碟型系統,藉此來改善應用程式效能。此服務可簡化和免除記憶體內環境的管理、監控和操作,讓您將工程資源投注在應用程式開發。使用 ElastiCache,不僅能夠改善使用者動作和查詢的負載與回應時間,也可降低與擴展 Web 應用程式相關的成本。
ElastiCache 可自動化分散式記憶體內鍵值環境操作所需的常見管理工作。使用 ElastiCache,只需在 AWS 管理主控台執行幾個步驟,即可在幾分鐘內為您的應用程式架構新增快取或記憶體內層。ElastiCache 旨在自動維護高可用性,並提供具有 99.99% 可用性的服務水準協議 (SLA)。ElastiCache 與 Valkey、Memcached 和 Redis OSS 協定相容,因此您在現有 Valkey、Memcached 或 Redis OSS 環境內使用的程式碼、應用程式和常用工具都能順暢地與本服務搭配使用。無需前期投資,只需為使用的資源付費。
什麼是記憶體內快取,而它對應用程式有何幫助?
ElastiCache 提供的記憶體內快取可以顯著改善許多高讀取量的應用程式工作負載 (如社交聯網、遊戲、媒體共享和問答集入口網站) 或運算密集型工作負載 (如推薦引擎) 的延遲和輸送量。記憶體內快取透過將關鍵資料存放在記憶體來提供低延遲存取,以提高應用程式效能。已快取的資訊可能包括 I/O 密集型資料庫查詢的結果或運算密集型計算的結果。
ElastiCache 可代表我管理哪些項目?
ElastiCache 管理與設定分散式記憶體內環境相關的工作,從佈建請求的資源到安裝軟體。使用 Amazon ElastiCache Serverless,沒有需要設定和管理的基礎設施。在設計您自己的 ElastiCache 叢集時,該服務會自動執行常見的管理任務,例如軟體修補以及失敗偵測和復原。ElastiCache 提供與資源關聯的詳細監控指標,讓您能夠快速診斷問題並做出回應。例如,您可以設定閾值,在其中一個快取的請求過載時收到警示。
ElastiCache 支援哪些引擎?
ElastiCache 為要求嚴苛、回應時間必須低於一毫秒的應用程式提供了全受管 Valkey、Memcached 和 Redis OSS。
如何開始使用 ElastiCache?
如果您尚未註冊 ElastiCache,可以在 ElastiCache 頁面上選取「開始使用」,並完成註冊程序。您必須擁有 AWS 帳戶;如果沒有帳戶,在您開始 ElastiCache 註冊程序時,系統會提示您建立一個帳戶。註冊 ElastiCache 後,請參閱 ElastiCache 文件,其中包含 Amazon ElastiCache 的入門指南。
熟悉 ElastiCache 後,即可使用主控台或 ElastiCache API,在幾分鐘內建立快取。
如何建立快取?
建立快取非常簡單,您可以使用主控台、ElastiCache API 或命令列工具。使用 ElastiCache Serverless 時,您可以使用預設的建議設定來建立快取,不到一分鐘即可開始使用快取。
無伺服器
什麼是 ElastiCache Serverless?
ElastiCache Serverless 是一項無伺服器選項,可讓您不到一分鐘即可開始使用快取,而無需進行基礎設施佈建或容量規劃。ElastiCache Serverless 可持續監控快取的運算、記憶體和網路使用率,藉此來消除耗時的容量規劃需求,因此它可立即擴展以滿足需求,而不會出現停機或效能降低。ElastiCache Serverless 會自動複寫跨多個可用區域 (AZ) 的資料,並針對每個快取為客戶提供具有 99.99% 可用性的服務水準協議 (SLA)。使用 ElastiCache Serverless,您只需依存放的資料和應用程式使用的運算資源付費。若要開始使用,使用主控台、ElastiCache 開發套件 (SDK) 或 AWS Command Line Interface (AWS CLI) 來指定快取名稱,只需幾個步驟即可建立 ElastiCache Serverless 快取。
如何將現有的 ElastiCache 工作負載遷移至 ElastiCache Serverless?
您可將 Valkey、Memcached 或 Redis OSS 端點變更為應用程式中新的 ElastiCache Serverless 快取端點,藉以遷移現有的 ElastiCache 工作負載。您可指定備份檔案的 Amazon Simple Storage Service (Amazon S3) 位置,以將現有 ElastiCache 資料遷移至 ElastiCache Serverless。請瀏覽我們的 ElastiCache Serverless 文件,進一步了解遷移工作負載的相關資訊。
ElastiCache Serverless 支援哪些版本的 Valkey、Memcached 和 Redis OSS?
ElastiCache Serverless 支援 Valkey 7.2、Memcached 1.6.21 版,以及 Redis OSS 7.0 版及更高版本。
ElastiCache Serverless 的擴展方式如何?
ElastiCache Serverless 可持續監控快取的記憶體、運算和網路使用率,以立即擴展。ElastiCache Serverless 支援快取進行縱向擴展,以及啟動平行的橫向擴展,以及時滿足應用程式需求,而不會導致停機或降低應用程式效能。請瀏覽我們的 ElastiCache Serverless 文件,進一步了解擴展的相關資訊。
什麼是 ElastiCache Serverless 可用性服務水準協議 (SLA)?
ElastiCache Serverless 會自動在多個可用區域中以備援方式存放資料,並針對所有工作負載提供 99.99% 可用性的服務水準協議 (SLA)。
什麼是 ElastiCache Serverless 定價?
使用 ElastiCache Serverless,您只需依存放的資料和應用程式使用的運算付費。若要進一步了解,請造訪 ElastiCache 定價頁面。
預留節點
什麼是 ElastiCache 預留節點?
預留節點或預留執行個體 (RI) 可為您提供隨需用量的大幅折扣。使用預留節點,您可以支付一次性預付款,保留一年期或三年期特定區域的快取執行,並獲得後續每小時使用費的大幅折扣。預留節點有三種:全額預付、不預付和部分預付,可讓您根據實際的每小時價格平衡預付款金額。
預留節點是否適用於 ElastiCache Serverless?
預留節點提供適用於 ElastiCache 隨需用量的折扣。ElastiCache Serverless 與預留節點不相容。
我可以購買多少個預留節點?
您最多可以購買 300 個預留節點。如果要執行 300 個以上節點,請填寫 ElastiCache Node 申請表。
如果我想將現有的節點轉換為預留節點,應該怎麼做?
只要在您目前執行節點和希望預訂節點的相同區域內,購買相同節點類別的節點保留即可。如果您成功購買保留,ElastiCache 將自動在現有的節點套用新的每小時使用費。
如果我註冊了預留節點,期間從何時開始? 該期間結束後,會怎麼處理我的節點?
收到您的請求及處理付款授權後,就會啟動與預留節點相關聯的定價變更。您可以在 AWS Account Activity 頁面或使用 DescribeReservedCacheNodes API 追蹤保留的狀態。如果在下一帳單週期前未成功授權一次性付款,折扣價格將不會生效。
保留期間到期後,您的預留節點將恢復為該節點類別和區域所適用的隨需小時費率。
我如何控制哪些節點按照預留節點費用計費?
用於建立、修改和刪除節點的 ElastiCache API 不會區分隨需節點和預留節點,因此您可以無縫地使用兩者。我們的系統在計算帳單時會自動套用您的保留,就是所有符合條件的節點都會以較低的預留快取節點每小時費率收費。
是否可以將預留節點從一個區域或可用區域轉移到另一個區域或可用區域?
每個預留節點都與特定區域關聯,並且在保留生命週期內固定不變,也無法變更。不過,每個保留都可以用於關聯區域內的任何可用區域。
是否可以取消預留?
否。您無法取消節點保留,而且一次性付款 (如果有) 也無法退款。無論使用多少容量,在預留節點合約期限內都必須繼續支付每小時費用。
付款選項如何影響我的帳單?
當您使用全額預付款選項購買預留節點時,是以一次預付款的方式支付整個預留節點合約期限的費用。您可以選擇不預付選項,不支付任何預付金。不預付預留節點的總金額會分配至執行個體合約期限中的每個小時,無論使用量為何,都依該合約期限內的每個小時付費。部分預付款選項是綜合全額預付和不預付選項。支付小額預付款後,無論使用量為何,都會依較低的小時費率為執行個體合約期間內的每個小時計費。
ElastiCache 預留節點是否具有大小靈活性?
是,ElastiCache 預留節點有執行個體系列 (或節點系列) 和 AWS 區域之內的大小靈活性。換言之,使用同一節點系列的所有大小,可自動實施現有折扣價的預留節點費率。
安全性
ElastiCache 具有哪些安全控制項?
ElastiCache 可讓您使用 AWS Key Management Service (KMS) 設定靜態資料加密、使用 Transport Layer Security (TLS) 設定傳輸中的資料加密、使用 AWS Identity and Access Management (IAM) 進行身分驗證,以及使用 Amazon Elastic Compute Cloud (Amazon EC2) 安全群組進行網路存取控制。
如何控制對 ElastiCache 的存取?
不使用 Amazon Virtual Private Cloud (Amazon VPC) 時,ElastiCache 可讓您透過網路安全群組來控制快取存取。安全群組與防火牆的功能類似,可控制快取的網路存取。預設情況下,快取的網路存取處於關閉狀態。如果希望應用程式可以存取您的快取,必須明確允許來自於特定 Amazon EC2 安全群組主機的存取。
您還可以使用 IAM 身分驗證來控制對 ElastiCache 資源的存取。如需詳細資訊,請參閱使用 IAM 進行身分驗證文件。
合規
ElastiCache 支援哪些合規計畫?
ElastiCache 支援 SOC 1、SOC 2、SOC 3、ISO、MTCS、C5、PCI DSS、HIPAA 和 FedRAMP 等合規計畫。請參閱合規計畫的 AWS 服務範圍,以取得支援的合規計畫最新清單。
ElastiCache 是否符合 PCI DSS 標準?
是,ElastiCache 是 AWS PCI 合規計畫中的 PCI 合規服務。進一步了解,請參閱以下資源:
若要查看涵蓋 ElastiCache 的最新合規計畫清單,請參閱合規計畫的 AWS 服務範圍。
ElastiCache 是否符合 HIPAA 標準?
是,ElastiCache 是 AWS 商業合作夥伴增補合約 (BAA) 下涵蓋的一項 HIPAA 合格服務。這表示您可以使用 ElastiCache 協助處理、維護和存放受保護的醫療資訊 (PHI),並為醫療保健應用程式提供支援。
使用合規功能是否需要額外付費?
否,使用合規功能不需額外付費。
要使用 HIPAA 合格服務 ElastiCache,該怎麼做?
如果您擁有與 AWS 共同履行的商業夥伴協議 (BAA),可以使用 ElastiCache 依據 HIPAA 建置存放和處理 HI 的應用程式。如果沒有 BAA 或對使用 AWS 建置應用程式有任何問題,請聯絡我們以取得詳細資訊。
ElastiCache FedRAMP 是否授權?
AWS FedRAMP 合規計畫將 ElastiCache 納為 FedRAMP 授權服務。美國政府客戶及其合作夥伴現在可以使用最新版 ElastiCache,在 AWS GovCloud (美國東部) 和 AWS GovCloud (美國西部) 區域處理和存放他們的 FedRAMP 系統、資料和任務關鍵型、高影響力的工作負載,而且在美國東部 (俄亥俄)、美國東部 (維吉尼亞北部)、美國西部 (加利佛尼亞北部) 和美國西部 (奧勒岡) 區域處於中等影響級別。
進一步了解,請參閱以下資源:
若要查看涵蓋 ElastiCache 的最新合規計畫清單,請參閱合規計畫的 AWS 服務範圍。
Valkey 功能
什麼是 Valkey?
Valkey 是由 Linux Foundation 主導的 Redis OSS 開放原始碼開發,支援多種不同的使用案例,例如快取、排行榜、工作階段存放區,由長期耕耘的 Redis OSS 參與者和維護者所建置。Valkey 受到超過 40 家公司的支持,自該專案於 2024 年 3 月建立以來,迅速受到採用。
為何我應使用 ElastiCache for Valkey?
藉助 ElastiCache for Valkey,您可以受益於以開放原始碼技術為基礎的全受管體驗,並同時充分運用 AWS 所提供的安全性、卓越營運、99.99% 可用性 SLA 和可靠性。ElastiCache Serverless for Valkey 可讓您進一步最佳化成本,價格降低 33%,最低資料儲存量為 100 MB,比 ElastiCache Redis OSS 低了 90%。在以節點為基礎的 ElastiCache for Valkey 上,您的每個節點最多可降低 20% 的成本。
如何從 ElastiCache for Redis OSS 升級至 ElastiCache for Valkey?
只要按幾下滑鼠,即可將現有的 ElastiCache for Redis OSS 快取升級至 ElastiCache for Valkey,而無須停機。您可以開始使用 AWS 管理主控台、軟體開發套件 (SDK) 或命令列介面 (CLI)。如需詳細資訊,請造訪 ElastiCache 功能頁面、入門部落格和 ElastiCache 使用者指南。
ElastiCache 是否支援多可用區域操作?
是。透過 ElastiCache,您可以在另一個 AWS 可用區域中建立僅供讀取複本。使用 ElastiCache Serverless 時,資料會自動在多個可用區域間以備援方式存放,以實現高可用性。在設計您自己的 ElastiCache 時,若節點發生故障,我們會佈建一個新節點。在主節點發生故障的情況下,ElastiCache 會自動將現有的僅供讀取複本提升為主要角色。如需如何處理節點故障的詳細資訊,請參閱了解複寫。
如何升級到較新的引擎版本?
您可以使用 ElastiCache API 並指定您喜好的引擎版本,快速升級至較新的引擎版本。在 ElastiCache 主控台中,您可以選取快取,然後選取「修改」。引擎升級程序旨在保留您現有的資料。如需詳細資訊,請參閱快取策略和最佳實務。
是否可以降級到較早的引擎版本?
否,不支援降級至較早的引擎版本。
是否可以使用 ElastiCache 進行跨區域複寫?
是。您可以使用 ElastiCache 中的 Global Datastore 功能建立跨區域複寫。Global Datastore 提供全受管、快速、可靠且專注安全的跨區域複寫。您可在一個區域寫入 ElastiCache 叢集,然後從其他最多兩個跨區域複寫叢集讀取該資料,進而實現跨區域的低延遲讀取和災難復原。
效能
ElastiCache 有哪些效能優點?
目前有幾個效能優勢。
ElastiCache 提供增強的 I/O 執行緒,可透過多路復用、簡報層卸載等,大幅提升輸送量和延遲。增強的 I/O 執行緒可利用更多核心處理 I/O,並根據動態調整工作負載來改善效能。ElastiCache 透過將加密卸載到相同的增強 I/O 執行緒,從而改善已啟用 TLS 之叢集的輸送量。這樣一來,相較於第 7.0 版 ElastiCache for Redis OSS,ElastiCache for Valkey 可提供高出 100% 的輸送量,並降低了 50% 的 P99 延遲。在 r7g.4xlarge 節點或更大的節點上,您可以每秒達到超過 1 百萬個請求,或每個叢集每秒達到 500 萬個請求。
此外,相較於第 7.2 版 ElastiCache for Valkey 和第 7.1 版 ElastiCache for Redis OSS,使用第 8.0 版 ElastiCache for Valkey 可為具有叢集模式的節點型叢集提高記憶體效率,其中每個金鑰使用的記憶體減少了 32 位元組。無伺服器組態提升了效能,可以在幾分鐘內擴展到每個快取每秒 500 萬個請求,比 Valkey 7.2 快 5 倍,並且具有微秒級讀取延遲。
如何監控 Valkey CPU 使用率?
ElastiCache 提供兩個不同的指標集,可視乎您的快取部署選項來衡量快取的 CPU 使用率。使用 ElastiCache Serverless 時,您可透過 ElastiCache Processing Units (ECPU) 指標來監控 CPU 使用率。請求取用的 ECPU 數目取決於花費的 vCPU 時間和傳輸的資料量。每個讀取和寫入 (例如 Valkey GET 和 SET 命令或 Memcached SET 和 GET 命令) 每 KB 的資料傳輸需要 1 個 ECPU。相較於 GET 或 SET 命令,某些在記憶體資料結構上運作的命令可能需要更多 vCPU 時間。ElastiCache 依據命令花費的 vCPU 時間,與 SET 或 GET 命令花費的 vCPU 時間基準做比較,來計算取用的 ECPU 數目。如果您的命令需要額外的 vCPU 時間,並且傳輸的資料超過 1 個 ECPU 的基準,則 ElastiCache 會依據兩個維度較高者來計算所需的 ECPU。
在設計自己的叢集時,您可以監控 EngineCPUUtilization 和 CPUUtilization。CPUUtilization 指標可測量執行個體 (節點) 的 CPU 使用率,而 EngineCPUUtilization 指標可測量引擎程序層級的使用率。除了 CPUUtilization 指標之外,您還需要 EngineCPUUtilization 指標,因為主要引擎程序是使用單一執行緒,而且在執行個體有多個 CPU 核心可用時只會使用一個 CPU。因此,CPUUtilization 指標無法精確檢視引擎程序層級的 CPU 使用率。建議您同時使用 CPUUtilization 和 EngineCPUUtilization 指標,以詳細瞭解 Valkey 叢集的 CPU 使用率。
這兩種指標集都可在所有 AWS 區域使用,而且您可使用 Amazon CloudWatch 或在主控台中存取這些指標。此外,建議您瀏覽該文件,以了解用於進行效能監控的實用指標。
僅供讀取複本
以僅供讀取複本執行節點代表什麼意義?
僅供讀取複本有兩個用途:
- 故障處理
- 讀取擴展
當您以僅供讀取複本執行快取時,主節點可同時服務寫入和讀取操作。複本僅可用於讀取流量,並且在主節點受損時也可做為暖待命使用。
何時應考慮使用 Valkey 僅供讀取複本?
使用 ElastiCache Serverless 時,服務會自動維護讀取複本。在設計您自己的快取時,有各種案例都適合為指定主節點部署一個或多個僅供讀取複本。部署僅供讀取複本的常見原因包括:
- 擴展超過單一主節點的運算或 I/O 容量,以進行讀取繁重的工作負載:此多餘的讀取流量可導向至一個或多個讀取複本。
- 在主節點無法使用時提供讀取流量:如果您的主節點無法處理 I/O 請求 (例如,由於備份或計畫維護而暫停 I/O),可以將讀取流量導向僅供讀取複本。請注意,在這種使用案例中,因為主執行個體不可用,僅供讀取複本中的資料可能為「過時」狀態。僅供讀取複本還可用於讓故障的主節點重新開始活躍起來。
資料保護案例:在極少見的情況或主節點故障或主節點所在的可用區域變成無法使用的情況下,您可以將不同可用區域中的僅供讀取複本提升為新的主節點。
如何連接至我的僅供讀取複本?
您可以連線至讀取複本,就像連線至主快取節點一樣。如果您有多個僅供讀取複本,各個複本之間的讀取流量分配方式取決於應用程式。以下是更多詳細資訊:
- Valkey 或 Redis (停用叢集模式) OSS 叢集,使用個別節點端點執行讀取操作。(在 API/CLI 中,這些被稱為讀取端點。)
- Valkey 或 Redis OSS (已啟用叢集模式) 叢集,使用叢集的組態端點進行所有操作。您仍可從個別節點端點讀取。(在 API 和 CLI 中,這些被稱為讀取端點。)
我可以為指定的主節點建立多少個僅供讀取複本?
ElastiCache 允許您為指定的主快取節點最多建立五 (5) 個僅供讀取複本。
如果發生容錯移轉,僅供讀取複本會出現什麼情況?
如果發生容錯移轉,所有關聯和可用的僅供讀取複本在容錯移轉完成之後將自動恢復複寫 (從最新提升的僅供讀取複本取得更新)。
ElastiCache 如何使我的讀取複本與其主節點保持最新狀態?
主快取節點的更新會自動複製到所有關聯的僅供讀取複本。不過,若利用 Valkey 或 Redis OSS 的非同步複寫技術,僅供讀取複本可能因為多種原因落後於主快取節點。常見的原因包括:
- 主快取節點的寫入 I/O 磁碟區速率超過套用變更到僅供讀取複本的速率。
- 主快取節點和僅供讀取複本之間有網路分割或延遲。
僅供讀取複本會受到 Valkey 或 Redis OSS 複寫的優缺點影響。如果您正在使用僅供讀取複本,應該會注意到僅供讀取複本與其主快取節點之間可能的延遲或「不一致」。 ElastiCache 會發出一個指標,來協助您了解不一致之處。
僅供讀取複本的費用為何? 如何計算帳單週期?
僅供讀取複本按標準快取節點計費,而且費率相同。就和標準快取節點一樣,僅供讀取複本的每「快取節點小時」費率取決於僅供讀取複本的快取節點類別:如需最新的定價,請造訪 ElastiCache 定價頁面。主快取節點和僅供讀取複本之間複製資料所產生的資料傳輸不收取費用。僅供讀取複本的帳單週期從成功建立讀取複本之後就馬上開始 (即狀態為「作用中」時)。僅供讀取複本將一直按標準 ElastiCache 快取節點小時費率計費,直到您發出命令將其刪除為止。
容錯移轉時會出現什麼情況?這種情況會持續多久?
ElastiCache 支援啟動容錯移轉,這樣您可以儘快恢復快取操作。在容錯移轉時,ElastiCache 會翻轉快取節點的 DNS 記錄以指向僅供讀取複本,僅供讀取複本轉而提升成新的主節點。我們鼓勵您遵循最佳實務,在應用程式層實作快取節點連線重試機制。通常,從開始到結束,下面的步驟 1 至 5 會在 6 分鐘內完成。
下面是自動容錯移轉事件,按發生的順序列出:
- 複寫群組訊息:針對節點群組 <node-group-id> 呼叫的測試容錯移轉 API
- 快取叢集訊息:從主節點 <primary-node-id> 到複本節點 <node-id> 的容錯移轉已完成
- 複寫群組訊息:從主節點 <primary-node-id> 到複本節點 <node-id> 的容錯移轉已完成
- 快取叢集訊息:復原快取節點 <node-id>
- 快取叢集訊息:快取節點 <node-id> 的復原已完成
是否可以在另一個區域建立僅供讀取複本做為我的主節點?
否,您只能在相同區域的同一可用區域或不同可用區域佈建您的僅供讀取複本做為主快取節點。 但是,您可以使用 Global Datastore,在 AWS 區域之間進行全受管、快速、可靠以及專注安全的複寫。使用此功能,您可以為 ElastiCache 建立跨區域僅供讀取複本叢集,以在 AWS 區域之間啟用低延遲讀取和災難復原。
是否可以為叢集環境新增和移除僅供讀取複本節點?
是。您可以在叢集環境中的一或多個碎片間新增和移除僅供讀取複本。在此操作期間,叢集會持續保持線上狀態並提供傳入 I/O 服務。
異地同步備份
什麼是適用於 ElastiCache 的多可用區域?
異地同步備份是一項功能,可讓您在設計您自己的 ElastiCache 快取時,在更高可用性的組態中執行。所有 ElastiCache Serverless 快取都會在異地同步備份組態下自動執行。ElastiCache 複寫群組是由一個主節點和最多五個僅供讀取複本組成。如果啟用異地同步備份,則每個主節點至少需要一個複本。在特定類型的計畫維護期間,或在少見的 ElastiCache 節點故障或可用區域故障情況下,ElastiCache 將自動偵測主要節點的故障、選擇一個僅供讀取複本並將其提升為新的主要節點。ElastiCache 還將傳播所提升僅供讀取複本的 DNS 變更,因此,如果您的應用程式正在寫入主節點的端點,則不需要更改端點。
使用多可用區域有哪些優點,以及什麼時候應該使用它?
在異地同步備份模式下執行 ElastiCache,主要優點為提高可用性與降低管理需求。在異地同步備份組態中執行 ElastiCache 時,您的快取符合 99.99% 可用性 SLA 的資格。如果 ElastiCache 主節點發生故障,則對您讀取和寫入主節點能力的影響將限制在完成自動容錯移轉所需要的時間。啟用異地同步備份時,ElastiCache 節點會自動容錯移轉,不需要任何管理。
多可用區域如何運作?
如果您正在使用 ElastiCache,而且複寫群組由一個主節點和一或多個僅供讀取複本組成,則可以使用異地同步備份。如果主節點故障,ElastiCache 將自動偵測該故障,從可用的僅供讀取複本中選擇其一,並將其提升為新的主節點。ElastiCache 將傳播所提升複本的 DNS 變更,因此您的應用程式可繼續寫入主端點。ElastiCache 也會擴充一個新節點,以取代與故障主要節點位於相同可用區域的已提升僅供讀取複本。如果主節點因可用區域暫時中斷而發生故障,一旦該可用區域還原,新的複本即會啟動。
我是否可以將複本與主節點放在同一可用區域中?
是。請注意,將主節點和複本放在相同可用區域中並不能使 ElastiCache 複寫群組在可用區域發生故障時靈活反應。
什麼情況下會使 ElastiCache 容錯移轉到僅供讀取複本?
如果發生以下任何情況,ElastiCache 將會容錯移轉到僅供讀取複本:
- 主可用區域的可用性受損
- 主可用區域的網路連線能力受損
- 主可用區域的運算單位故障
當主節點發生故障時,將提升哪個僅供讀取複本?
如果有多個僅供讀取複本,將提升對主節點非同步複寫延遲最小的僅供讀取複本。
執行自動容錯移轉時,我是否會收到警示?
是,ElastiCache 將建立事件,以通知您已執行自動容錯移轉。您可以使用 DescribeEvents API 返回與 ElastiCache 節點相關的事件資訊,或選取 ElastiCache 管理主控台的「事件」區段。
容錯移轉後,現在我的主節點與其他 AWS 資源 (例如 Amazon EC2 執行個體) 位於不同的可用區域。我是否需要擔心有延遲?
可用區域的設計是將低延遲網路連線能力提供給同一區域中的其他可用區域。您應考慮以跨多個可用區域的冗餘建構應用程式及其他 AWS 資源,以便在可用區域發生中斷時,應用程式能夠靈活反應。
可以在哪裡獲得多可用區域的詳細資訊?
如需有關 Multi-AZ 的詳細資訊,請參閱 ElastiCache 文件。
備份與還原
什麼是備份與還原?
備份與還原是一項功能,可讓您為 ElastiCache 快取建立快照。ElastiCache 會儲存這些快照,以便使用者之後用來還原快取。目前支援用於 ElastiCache for Valkey、ElastiCache for Redis OSS 和 Serverless。
為什麼需要快照?
如果因為節點故障和少見的硬體故障導致資料遺失,建立快照就非常有用。使用備份的另一個常見原因是用於存檔。快照存放在 Amazon S3 中。
是否可以將 ElastiCache 快照匯出到我擁有的 Amazon S3 儲存貯體?
是,您可以將 ElastiCache 快照匯出至與您的快取位於相同區域的授權 S3 儲存貯體。
我有多個使用 ElastiCache 的 AWS 帳戶。是否可以使用一個帳戶的 ElastiCache 快照來暖開機其他帳戶中 ElastiCache 叢集?
是。您必須先將快照複製到相同區域中所選的授權 S3 儲存貯體,然後將跨帳戶儲存貯體許可授予其他帳戶。
使用備份與還原的成本為何?
ElastiCache 為每個作用中的 ElastiCache 快取免費提供一個快照的儲存空間。額外儲存將根據快照佔用的空間收取費用,每月 0.085 USD/GB (所有區域的價格相同)。使用快照功能進行的資料傳輸是免費的。
如果刪除 ElastiCache 快取,我的快照會出現什麼情況?
當您刪除 ElastiCache 快取時,會保留您的手動快照。您還可以選擇在刪除快取之前建立最終快照。自動快取快照則不會保留。
增強型引擎
ElastiCache 內的引擎與 Valkey 或 Redis OSS 有何不同?
ElastiCache 內的引擎與 Valkey 和 Redis OSS 完全相容,但隨附可提升效能、健全性和穩定性的增強功能。這些增強功能包括:
- 更多可用記憶體:您現在可以放心為應用程式分配更多記憶體,無須擔心同步和快照期間會增加交換使用量。
- 改善同步功能:針對高負載及從網路中斷恢復時,提供更穩固的同步功能。此外,由於主要節點和複本在此操作中不再需要使用磁碟,因此同步的速度更快。
- 更順暢的容錯移轉:在容錯移轉的情況下,由於複本不再需要排清資料,就能與主要節點進行完整的重新同步,因此現在可以更快復原碎片。
是否要變更應用程式的程式碼,才能使用 ElastiCache 上的增強型引擎?
增強型引擎與 Valkey 和 Redis OSS 完全相容,因此您可以充分利用改進的健全性和穩定性,而無須變更任何應用程式程式碼。
使用增強型引擎的費用為何?
使用增強型引擎無須額外付費。
加密
如何使用傳輸中加密、靜態加密和 Valkey 或 Redis OSS AUTH?
傳輸中加密、靜態加密、Valkey AUTH 和角色型存取控制 (RBAC) 是在建立 ElastiCache 快取時可選取的功能。如果啟用傳輸中加密,您可以選擇使用 AUTH 或 RBAC 來提高安全性和存取控制。
ElastiCache 靜態加密提供哪些功能?
ElastiCache 動態加密提供哪些功能?
傳輸中加密功能可協助用戶端與 ElastiCache 之間,以及伺服器 (主複本與讀取複本) 之間的通訊加密。閱讀更多有關 ElastiCache 傳輸中加密的內容。
更新 TLS 憑證是否需要執行任何動作?
否,ElastiCache 在幕後管理認證過期和更新。使用者不需採取任何動作即可繼續執行憑證維護。
使用加密是否需要額外付費?
否,使用加密無須額外付費。
Global Datastore
什麼是 ElastiCache Global Datastore?
Global Datastore 是 ElastiCache 的一項功能,提供全受管、快速、可靠且專注安全的跨區域複寫。透過 Global Datastore,您可以在一個區域寫入快取,然後從其他最多兩個跨區域複寫叢集讀取該資料,進而實現跨區域的低延遲讀取和災難復原。
Global Datastore 專為遍佈全球的即時應用程式設計,通常在一秒內即可複寫跨區域的資料,透過提供更接近最終使用者的地理位置讀取來提高應用程式的回應速度。在罕見的區域性降級情況下,可以將一個運作正常的跨區域複寫快取提升為具有完全讀取和寫入功能的主快取。開始升級之後,通常會在一分鐘之內完成,讓您的應用程式不會停擺。
哪些引擎版本支援 Global Datastore?
Valkey 的 ElastiCache 7.2 版和 Redis OSS 的 ElastiCache 5.0.6 版或更新版本支援 Global Datastore。
我可以複寫到多少個 AWS 區域?
您最多可以複寫到 Global Datastore 中的兩個次要區域。在不太可能發生區域降級的情況下,次要區域中的快取可用於提供低延遲區域讀取和災難復原。
如何建立 Global Datastore?
您可以使用現有快取或建立新的主快取來設定 Global Datastore。您只需在 ElastiCache 管理主控台中幾個步驟即可建立 Global Datastore,或是下載最新的 AWS SDK 或 AWS CLI。AWS CloudFormation 中支援 Global Datastore。
在主叢集 (區域) 降級的情況下,ElastiCache 是否會自動容錯移轉 Global Datastore 並升級次要叢集?
否,當主叢集 (區域) 降級時,ElastiCache 不會自動升級次要叢集。您可以透過將次要叢集升級為主叢集來手動啟動容錯移轉。容錯移轉和升級次要叢集通常可以在一分鐘內完成。
Global Datastore 提供何種復原點目標 (RPO) 和復原時間點目標 (RTO)?
ElastiCache 並未提供 RPO 和 RTO 的 SLA。RPO 會因為區域之間的複寫延遲而不同,而且取決於區域之間的網路延遲和跨區域網路流量的擁堵狀況。Global Datastore 的 RPO 通常不到一秒,因此寫入主區域的資料在一秒鐘之內即可供次要區域使用。Global Datastore 的 RTO 通常不到一分鐘。一旦開始容錯移轉至次要叢集,ElastiCache 通常會在一分鐘內將次要叢集升級為具備完全讀取和寫入功能。
Global Datastore 的定價為何?
ElastiCache 對使用 Global Datastore 不另收取任何費用。您需要為 Global Datastore 中的主快取和次要快取及跨區域資料傳輸流量付費。
Memcached 功能
ElastiCache for Memcached 可以用來快取什麼內容?
您可以使用 ElastiCache for Memcached 來快取各種物件。這些物件包括永久資料儲存中的內容 (如 Amazon Relational Database Service (Amazon RDS)、Amazon DynamoDB 或 Amazon EC2 上託管的自我受管型資料庫等)、動態產生的網頁 (例如使用 Nginx),或者可能不需要永久備份存放區的暫時工作階段資料。您也可以使用它來實施高頻計數器,以便在高容量 Web 應用程式中部署許可控制。
是否可將 ElastiCache for Memcached 與 Amazon RDS 或 DynamoDB 等 AWS 永久資料儲存一起使用?
是。ElastiCache 是 Amazon RDS 或 DynamoDB 等資料存放區的理想前端,為具有極高請求率或低延遲要求的應用程式提供高效能中介層。
我目前使用 Memcached。如何遷移至 ElastiCache?
ElastiCache 與 Memcached 協定相容。因此,您可以使用標準的 Memcached 操作,如 get、set、incr 和 decr,使用方式也和您現有的 Memcached 部署完全相同。ElastiCache 支援文字和二進位協定。它還支援大多數標準的統計結果,也可透過 CloudWatch 以圖形方式查看。因此,您可以切換為使用 ElastiCache,無須重新編譯或重新連結您的應用程式︰您使用的程式庫可以繼續工作。若要設定應用程式存取的快取伺服器,更新應用程式的 Memcached 設定檔案,將我們為您佈建的伺服器端點 (節點) 包含在內即可。您可以使用主控台中的「複製節點端點」選項或 DescribeCacheClusters API,來取得端點清單。與任何移轉過程相同,我們建議您先對新的 ElastiCache 部署進行完整的測試,而後再完成目前解決方案的割接工作。
您可以透過 Amazon EC2 網路或自己的資料中心,存取 Amazon VPC 中的 ElastiCache 叢集。如需詳細資訊,請參閱 Amazon VPC 存取模式。ElastiCache 使用 DNS 項目來允許用戶端應用程式定位伺服器 (節點)。節點的 DNS 名稱保持不變,但節點的 IP 地址可能會不時改變,例如,在非 VPC 安裝上發生故障後自動更換節點時。有關如何處理節點故障的建議,請參閱此常見問答集。
組態與擴展
如何為我的應用程式選擇適當的節點類型?
雖然此問題沒有標準答案,但使用 ElastiCache 時,您無須擔心節點的數量是否完全準確,因為之後可隨時快速新增或移除節點。您還可以使用 ElastiCache Serverless 來簡化高可用性 Memcached 快取的執行。在選擇初始組態時,您可以考慮以下兩個相互關聯的因素:
- 達到目標快取命中率所需的總記憶體量,以及
- 保持可接受的應用程式效能,並且不會在發生節點故障時造成資料庫後端過載所需的節點數。
所需的記憶體量取決於您的資料集大小及應用程式的存取模式。若要提高容錯能力,在對所需的記憶體總量有初步概念之後,可將該記憶體量分割為足夠數量的節點,以便您的應用程式在一兩個節點出現故障時依然可以執行。例如,如果您的記憶體要求為 13 GB,則可能需要使用兩個 cache.m4.large 節點,而不是一個 cache.m4.xlarge 節點。需要確保一個或多個節點故障復原期間快取命中率出現臨時降低時,資料庫等其他系統不會過載,這一點很重要。如需詳細資訊,請參閱 ElastiCache 使用者指南。
一個叢集是否可跨越多個可用區域?
是。建立叢集或在現有叢集新增節點時,可以為新節點選擇可用區域。您可以在每個可用區域中指定請求的節點數目,也可以選取「跨區域分散節點」。如果叢集位於 Amazon VPC 中,節點只能放置在屬於所選快取子網路群組的可用區域中。如需詳細資訊,請參閱 ElastiCache VPC 文件。
我可以在 ElastiCache Memcached 的每一區域執行多少個節點?
您最多可以在每個區域執行 300 個節點。如果需要更多節點,請填寫提高 ElastiCache 上限申請表。
ElastiCache 如何對節點故障作出反應?
該服務可以偵測到節點故障,並透過下列自動步驟進行反應:
- ElastiCache 會取得新的服務資源以修復節點,然後將節點的現有 DNS 名稱重新導向到指向新的服務資源。若是 Amazon VPC 安裝,當節點在發生故障後復原時,ElastiCache 會確保節點的 DNS 名稱和 IP 地址都維持相同。若是非 Amazon VPC 安裝,ElastiCache 會確保節點的 DNS 名稱不變,但節點的基礎 IP 地址可能變更。
- 如果您已將某個 SNS 主題與叢集關聯,在新的節點設定完成並可用時,ElastiCache 會傳送 SNS 通知以告知您出現了節點復原。這可讓您選擇安排應用程式強制 Memcached 用戶端程式庫嘗試重新連接修復後的節點。這可能很重要,因為一些 Memcached 程式庫在與某個伺服器的通訊出現錯誤或逾時的時候,會無限期停止使用該伺服器 (節點)。
如果我確定需要更多記憶體來支援我的應用程式,如何利用 ElastiCache 增加總記憶體?
您可以在現有的 Memcached 叢集新增更多節點:在主控台,使用您快取叢集的「節點」索引標籤上的「新增節點」選項,或者呼叫 ModifyCacheCluster API。
相容性
ElastiCache 如何與其他 AWS 服務互動?
ElastiCache 是 Amazon RDS 和 DynamoDB 等 AWS 的理想前端選擇,可為高效能應用程式提供極低的延遲並卸載一些請求容量,同時這些服務能提供長久的資料耐用性。在與 Amazon EC2 和 Amazon EMR 搭配使用時,此服務也可用於提升應用程式效能。
ElastiCache 是否較適合任何特定的程式設計語言?
儘管並非全部,但 Memcached 用戶端程式庫適合許多熱門的程式設計語言使用。如果您使用 ElastiCache 時遇到特定的 Memcached 用戶端問題,請透過 ElastiCache 社群論壇與我們聯絡。
哪些熱門的 Memcached 程式庫與 ElastiCache 相容?
ElastiCache 不需要特定的用戶端程式庫,並且可與現有 Memcached 用戶端程式庫搭配使用,而無需重新編譯或應用程式重新連結 (Memcached 1.4.5 及更高版本)。範例包括 libMemcached (C) 及以此為基礎的程式庫 (例如 PHP、Perl、Python)、spyMemcached (Java) 和 fauna (Ruby)。
Auto Discovery
什麼是 Auto Discovery?它對我有什麼幫助?
Auto Discovery 是可節省開發人員時間和精力,並降低應用程式複雜性的一種功能。在 ElastiCache 叢集新增或刪除快取節點時,Auto Discovery 可透過用戶端自動發現快取節點。之前,為了處理叢集成員資格的變更,開發人員必須手動更新快取節點的端點清單。根據用戶端應用程式的建構方式,通常用戶端初始化需要關閉和重新啟動應用程式,而這會導致停機。透過 Auto Discovery,ElastiCache 可消除這種複雜性。利用 Auto Discovery,除了與 Memcached 協定向後相容以外,ElastiCache 還提供用戶端有關快取叢集成員資格的資訊。用戶端能夠處理更多資訊,無須任何初始化即可自我重新設定,以使用 ElastiCache 叢集的最新節點。
Auto Discovery 如何運作?
ElastiCache 叢集可以利用透過指定端點進行尋址的節點來建立。透過 Auto Discovery,ElastiCache 叢集也會取得一個獨特的組態端點,這是在叢集生命週期內均有效的 DNS 記錄。此 DNS 記錄包含屬於該叢集的節點的 DNS 名稱。ElastiCache 將確保組態端點永遠指向至少一個這種「目標」節點。然後,針對目標節點的查詢將為相關叢集的所有節點返回端點。之後,您就可以和以前一樣連接到叢集節點和使用各種 Memcached 協定命令,如 get、set、incr 和 decr。如需更多詳細資訊,請參閱文件。若要使用 Auto Discovery,您需要有具備 Auto Discovery 功能的用戶端。您可以從 ElastiCache 主控台下載適用於 .Net、Java 和 PHP 的 Auto Discovery 用戶端。完成初始化後,用戶端將使用組態端點自動確定 ElastiCache 叢集的最新成員。當您新增或移除節點以對快取叢集進行變更,或者因發生故障取代節點後,Auto Discovery 用戶端會自動確定變更,您不需要手動初始化用戶端。
如何開始使用 Auto Discovery?
若要開始使用,在 ElastiCache 主控台上選取「下載 ElastiCache 叢集用戶端」連結,以下載 Amazon ElastiCache 叢集用戶端。下載之前,您必須已經有 ElastiCache 帳戶;如果還沒有帳戶,可以從 ElastiCache 詳細資訊頁面註冊。下載用戶端後,您可以造訪 ElastiCache 主控台,開始設定和啟用 ElastiCache 叢集。如需更多詳細資訊,請參閱文件。
如果我繼續使用自己的 Memcached 用戶端搭配 ElastiCache 快取叢集,是否可取得此功能?
是,您可以隨時停用 Auto Discovery。您可以在 ElastiCache 叢集用戶端初始化期間,透過指定操作模式以停用 Auto Discovery。此外,由於 ElastiCache 仍然支援 Memcached,因此您可以像從前一樣使用任何 Memcached 協定相容的用戶端。
使用 Auto Discovery 的最低硬體和軟體需求為何?
若要充分利用 Auto Discovery,必須使用具備 Auto Discovery 功能的用戶端以連線至 ElastiCache 叢集。ElastiCache 目前支援適用於 .Net、Java 和 PHP 且具備 Auto Discovery 功能的用戶端。您可以從 ElastiCache 主控台下載這些用戶端。您可以在可用的熱門 Memcached 用戶端上建立任何其他語言的用戶端。
如何修改或編寫我的 Memcached 用戶端以支援 Auto Discovery 功能?
您可以使用任何 Memcached 用戶端程式庫,並新增 Auto Discovery 支援功能。如果您希望新增或修改自己的用戶端以支援 Auto Discovery,請參閱 Auto Discovery 命令集文件。
如果我不需要使用 Auto Discovery,是否可以繼續使用現有的 Memcached 用戶端?
是,ElastiCache 仍然與 Memcached 協定相容,不會要求您變更用戶端。不過,為了充分利用 Auto Discovery 功能,我們必須增強 Memcached 用戶端的功能。如果您選擇不使用 ElastiCache 叢集用戶端,可以繼續使用現有的用戶端,或修改您的用戶端程式庫,使其能了解 Auto Discovery 命令集。
使用 Auto Discovery 時,是否可以擁有異質用戶端?
是,可以同時使用具備 Auto Discovery 功能的用戶端和傳統的 Memcached 用戶端,來連線至同一個 ElastiCache 叢集。ElastiCache 仍然與 Memcached 100% 相容。
是否可以停用 Auto Discovery?
是,您可以隨時停用 Auto Discovery。您可以在 ElastiCache 叢集用戶端初始化期間,透過指定操作模式以停用 Auto Discovery。此外,由於 ElastiCache 仍然支援 Memcached,因此您可以像從前一樣使用任何 Memcached 協定相容的用戶端。
引擎版本管理
我可以控制是否以及何時將支援 ElastiCache 叢集的引擎版本升級到支援的新版本嗎?
ElastiCache 允許您控制是否以及何時將支援叢集的 Memcached 協定相容軟體升級到 ElastiCache 支援的新版本。這使您能夠靈活地保持與特定 Memcached 版本的相容性,在生產中部署應用程式前針對新版本進行測試,以及根據自己的要求和時間執行版本升級。由於版本升級涉及一定的相容性風險,因此這些升級不會自行啟動,必須由您啟動。這種軟體修補的方式讓您主導版本升級,但仍將應用程式修補的工作交給 ElastiCache。您可以閱讀後續的常見問答集以進一步了解版本管理的更多相關資訊。或者,也可以參閱 ElastiCache 使用者指南。雖然引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,但如果我們判定系統或快取軟體有任何資訊安全漏洞,會代表您修補叢集。
如何指定我的叢集應執行哪一個受支援的 Memcached 版本?
您可以在建立新叢集時指定目前支援的任何版本 (次要或主要版本)。如果您要啟動受支援引擎版本版次的升級,可以使用叢集的「修改」選項執行此操作。只要透過「快取引擎版本欄位」欄位指定希望升級到的版本即可。然後,系統將立即 (如果已核取「立即套用」選項) 或在叢集下一個計畫維護時段代表您套用升級。
是否可以在升級前針對新版本測試叢集?
是。可以使用新引擎版本建立新的叢集,以執行測試。您可以將開發或模擬應用程式指向此叢集,測試後再決定是否升級您的原始叢集。
ElastiCache 是否針對支援新的 Memcached 版本版次或淘汰目前支援的版本提供準則?
我們計劃針對 ElastiCache 支援更多 Memcached 的主要和次要版本。特定年度支援的新版本版次數量因 Memcached 版本版次的頻率和內容而異,由工程團隊負責版本全面審查的最終結果。
如果要升級到最新的 Memcached 版本,我應該怎麼做?
使用 Modify 程序即可升級現有的 Memcached 叢集。從舊版 Memcached 升級到 Memcached 版本 1.4.33 或更新版本時,請確定現有的參數 max_chunk_size 值能夠滿足 slab_chunk_max 參數所需的條件。請在檢閱升級先決條件。
功能
什麼是 ElastiCache?
ElastiCache 是一項 Web 服務,可精簡 Redis OSS 協定相容快取在雲端的部署和執行。此服務可進行 Redis OSS 節點的管理、監控和操作;而且可透過 ElastiCache 主控台、AWS CLI 或 Web 服務 API 執行節點的建立、刪除和修改。ElastiCache 支援高可用性組態,包括啟用 Redis OSS 叢集模式和停用叢集模式,以及從主節點到複本的自動容錯移轉。
ElastiCache 協定是否與 Redis OSS 相容?
是,ElastiCache 設計為協定與 Redis OSS 相容。您目前與您現有的獨立 Redis OSS 資料存放區搭配使用的程式碼、應用程式、驅動程式和工具仍然能與 ElastiCache 搭配使用,將現有 Redis OSS 部署移轉到 ElastiCache 時也不需要變更程式碼,除非另有說明。
ElastiCache for Redis 如何計費?
如需最新的定價資訊,請參閱定價。
ElastiCache 是否支援多可用區域操作?
是。透過 ElastiCache,您可以在另一個 AWS 可用區域中建立僅供讀取複本。使用 ElastiCache Serverless 時,資料會自動在多個可用區域間以備援方式存放,以實現高可用性。在設計您自己的 ElastiCache 時,若節點發生故障,我們會佈建一個新節點。在主節點發生故障的情況下,ElastiCache 會自動將現有的僅供讀取複本提升為主要角色。如需如何處理節點故障的詳細資訊,請參閱了解複寫。
如何升級到較新的引擎版本?
您可以使用 ElastiCache API 並指定您喜好的引擎版本,快速升級至較新的引擎版本。在 ElastiCache 主控台中,您可以選取快取,然後選取「修改」。引擎升級程序旨在保留您現有的資料。如需詳細資訊,請參閱快取策略和最佳實務。
是否可以降級到較早的引擎版本?
否,不支援降級至較早的引擎版本。
是否可以使用 ElastiCache 進行跨區域複寫?
是。您可以使用 ElastiCache 中的 Global Datastore 功能建立跨區域複寫。Global Datastore 提供全受管、快速、可靠且專注安全的跨區域複寫。您可在一個區域寫入 ElastiCache 叢集,然後從其他最多兩個跨區域複寫叢集讀取該資料,進而實現跨區域的低延遲讀取和災難復原。
效能
ElastiCache 有哪些效能優點?
ElastiCache 提供增強的 I/O 執行緒,可透過多路復用、簡報層卸載等,大幅提升輸送量和延遲。增強的 I/O 執行緒可利用更多核心處理 I/O,並根據動態調整工作負載來改善效能。ElastiCache 透過將加密卸載到相同的增強 I/O 執行緒,從而改善已啟用 TLS 之叢集的輸送量。ElastiCache (Redis OSS) 7.0 版導入了增強型 I/O 多工處理,可將許多用戶端要求合併到單一通道,並提高執行緒效率。
在 Redis OSS 的 ElastiCache 7.1 版及更高版本中,我們擴展了增強型 I/O 執行緒功能,以同時處理簡報層邏輯。增強型 I/O 執行緒不僅會讀取用戶端輸入,還會將輸入剖析為 Redis 二進位命令格式,然後轉送至主執行緒執行,以提供效能提升。透過 Redis OSS 的 ElastiCache 7.1 版,與先前的版本相比,輸送量可以提高 100%,且 P99 延遲可以降低 50%。在 r7g.4xlarge 或更大的版本上,每個節點可以達到每秒超過 100 萬個請求 (RPS)。
如何監控 Redis OSS CPU 使用率?
ElastiCache 提供兩個不同的指標集,可視乎您的快取部署選項來衡量快取的 CPU 使用率。使用 ElastiCache Serverless 時,您可透過 ElastiCache Processing Units (ECPU) 指標來監控 CPU 使用率。請求取用的 ECPU 數目取決於花費的 vCPU 時間和傳輸的資料量。每個讀取和寫入,例如 Redis OSS GET 和 SET 命令或 Memcached SET 和 GET 命令,每次傳輸的資料需要 1 個 ECPU。相較於 GET 或 SET 命令,某些在記憶體資料結構上運作的 Redis OSS 命令取用需要更多 vCPU 時間。ElastiCache 依據命令花費的 vCPU 時間,與 SET 或 GET 命令花費的 vCPU 時間基準做比較,來計算取用的 ECPU 數目。如果您的命令需要額外的 vCPU 時間,並且傳輸的資料超過 1 個 ECPU 的基準,則 ElastiCache 會依據兩個維度較高者來計算所需的 ECPU。
在設計自己的叢集時,您可以監控 EngineCPUUtilization 和 CPUUtilization。CPUUtilization 指標可測量執行個體 (節點) 的 CPU 使用率,而 EngineCPUUtilization 指標可測量引擎程序層級的使用率。除了 CPUUtilization 指標之外,您還需要 EngineCPUUtilization 指標,因為主要 Redis OSS 程序是使用單一執行緒,而且在執行個體有多個 CPU 核心可用時只會使用一個 CPU。因此,CPUUtilization 指標無法精確檢視引擎程序層級的 CPU 使用率。建議您同時使用 CPUUtilization 和 EngineCPUUtilization 指標,以詳細瞭解 Redis OSS 叢集的 CPU 使用率。
這兩種指標集都可在所有 AWS 區域使用,而且您可使用 Amazon CloudWatch 或在主控台中存取這些指標。此外,建議您造訪該文件,以了解用於進行效能監控的實用指標。
僅供讀取複本
以僅供讀取複本執行節點代表什麼意義?
僅供讀取複本在 Redis OSS 有兩個用途:
- 故障處理
- 讀取擴展
當您以僅供讀取複本執行快取時,主節點可同時服務寫入和讀取操作。複本僅可用於讀取流量,並且在主節點受損時也可做為暖待命使用。
何時應考慮使用 Redis OSS 僅供讀取複本?
使用 ElastiCache Serverless 時,服務會自動維護讀取複本。在設計您自己的快取時,有各種案例都適合為指定主節點部署一個或多個僅供讀取複本。部署僅供讀取複本的常見原因包括:
- 擴展超過單一主節點的運算或 I/O 容量,以進行讀取繁重的工作負載:此多餘的讀取流量可導向至一個或多個讀取複本。
- 在主節點無法使用時提供讀取流量:如果您的主節點無法處理 I/O 請求 (例如,由於備份或計畫維護而暫停 I/O),可以將讀取流量導向僅供讀取複本。請注意,在這種使用案例中,因為主執行個體不可用,僅供讀取複本中的資料可能為「過時」狀態。僅供讀取複本還可用於讓故障的主節點重新開始活躍起來。
- 資料保護案例:在極少見的情況或主節點故障或主節點所在的可用區域變成無法使用的情況下,您可以將不同可用區域中的僅供讀取複本提升為新的主節點。
如何連接至我的僅供讀取複本?
您可以連線至讀取複本,就像連線至主快取節點一樣。如果您有多個僅供讀取複本,各個複本之間的讀取流量分配方式取決於應用程式。以下是更多詳細資訊:
- Redis (停用叢集模式) OSS 叢集,使用個別節點端點來執行讀取操作。(在 API/CLI 中,這些被稱為讀取端點。)
- Redis OSS (已啟用叢集模式) 叢集,使用叢集的組態端點進行所有操作。您仍可從個別節點端點讀取。(在 API 和 CLI 中,這些被稱為讀取端點。)
我可以為指定的主節點建立多少個僅供讀取複本?
ElastiCache 允許您為指定的主快取節點最多建立五 (5) 個僅供讀取複本。
如果發生容錯移轉,僅供讀取複本會出現什麼情況?
如果發生容錯移轉,所有關聯和可用的僅供讀取複本在容錯移轉完成之後將自動恢復複寫 (從最新提升的僅供讀取複本取得更新)。
ElastiCache 如何使我的讀取複本與其主節點保持最新狀態?
主快取節點的更新會自動複製到所有關聯的僅供讀取複本。不過,若利用 Redis OSS 的異步複寫技術,僅供讀取複本可能因為各種原因落後於主快取節點。常見的原因包括:
- 主快取節點的寫入 I/O 磁碟區速率超過套用變更到僅供讀取複本的速率。
- 主快取節點和僅供讀取複本之間有網路分割或延遲。
僅供讀取複本會受到 Redis OSS 複寫的優缺點影響。如果您正在使用僅供讀取複本,應該會注意到僅供讀取複本與其主快取節點之間可能的延遲或「不一致」。 ElastiCache 會發出一個指標,來協助您了解不一致之處。
僅供讀取複本的費用為何? 如何計算帳單週期?
僅供讀取複本按標準快取節點計費,而且費率相同。就和標準快取節點一樣,僅供讀取複本的每「快取節點小時」費率取決於僅供讀取複本的快取節點類別 – 如需最新的定價,請造訪 ElastiCache 定價頁面。主快取節點和僅供讀取複本之間複製資料所產生的資料傳輸不收取費用。僅供讀取複本的帳單週期從成功建立讀取複本之後就馬上開始 (即狀態為「作用中」時)。僅供讀取複本將一直按標準 ElastiCache 快取節點小時費率計費,直到您發出命令將其刪除為止。
容錯移轉時會出現什麼情況?這種情況會持續多久?
ElastiCache 支援啟動容錯移轉,這樣您可以儘快恢復快取操作。在容錯移轉時,ElastiCache 會翻轉快取節點的 DNS 記錄以指向僅供讀取複本,僅供讀取複本轉而提升成新的主節點。我們鼓勵您遵循最佳實務,在應用程式層實作快取節點連線重試機制。通常,從開始到結束,下面的步驟 1 至 5 會在 6 分鐘內完成。
下面是自動容錯移轉事件,按發生的順序列出:
- 複寫群組訊息:針對節點群組 <node-group-id> 呼叫的測試容錯移轉 API
- 快取叢集訊息:從主節點 <primary-node-id> 到複本節點 <node-id> 的容錯移轉已完成
- 複寫群組訊息:從主節點 <primary-node-id> 到複本節點 <node-id> 的容錯移轉已完成
- 快取叢集訊息:復原快取節點 <node-id>
- 快取叢集訊息:快取節點 <node-id> 的復原已完成
是否可以在另一個區域建立僅供讀取複本做為我的主節點?
否,您只能在相同區域的同一可用區域或不同可用區域佈建您的僅供讀取複本做為主快取節點。 但是,您可以使用 Global Datastore,在 AWS 區域之間進行全受管、快速、可靠以及專注安全的複寫。使用此功能,您可以為 ElastiCache 建立跨區域僅供讀取複本叢集,以在 AWS 區域之間啟用低延遲讀取和災難復原。
是否可以查看我的主節點目前位於哪個可用區域?
是。您可以使用主控台或 DescribeCacheClusters API 查看目前主節點的位置。
是否可以為叢集環境新增和移除僅供讀取複本節點?
是。您可以在叢集環境中的一或多個碎片間新增和移除僅供讀取複本。在此操作期間,叢集會持續保持線上狀態並提供傳入 I/O 服務。
異地同步備份
什麼是適用於 ElastiCache 的多可用區域?
異地同步備份是一項功能,可讓您在設計您自己的 ElastiCache 快取時,在更高可用性的組態中執行。所有 ElastiCache Serverless 快取都會在異地同步備份組態下自動執行。ElastiCache 複寫群組是由一個主節點和最多五個僅供讀取複本組成。如果啟用異地同步備份,則每個主節點至少需要一個複本。在特定類型的計畫維護期間,或在少見的 ElastiCache 節點故障或可用區域故障情況下,ElastiCache 將自動偵測主要節點的故障、選擇一個僅供讀取複本並將其提升為新的主要節點。ElastiCache 還將傳播所提升僅供讀取複本的 DNS 變更,因此,如果您的應用程式正在寫入主節點的端點,則不需要更改端點。
使用多可用區域有哪些優點,以及什麼時候應該使用它?
在異地同步備份模式下執行 ElastiCache,主要優點為提高可用性與降低管理需求。在異地同步備份組態中執行 ElastiCache 時,您的快取符合 99.99% 可用性 SLA 的資格。如果 ElastiCache 主節點發生故障,則對您讀取和寫入主節點能力的影響將限制在完成自動容錯移轉所需要的時間。啟用異地同步備份時,ElastiCache 節點會自動容錯移轉,不需要任何管理。
多可用區域如何運作?
如果您正在使用 ElastiCache,而且複寫群組由一個主節點和一或多個僅供讀取複本組成,則可以使用異地同步備份。如果主節點故障,ElastiCache 將自動偵測該故障,從可用的僅供讀取複本中選擇其一,並將其提升為新的主節點。ElastiCache 將傳播所提升複本的 DNS 變更,因此您的應用程式可繼續寫入主端點。ElastiCache 也會擴充一個新節點,以取代與故障主要節點位於相同可用區域的已提升僅供讀取複本。如果主節點因可用區域暫時中斷而發生故障,一旦該可用區域還原,新的複本即會啟動。
我是否可以將複本與主節點放在同一可用區域中?
是。請注意,將主節點和複本放在相同可用區域中並不能使 ElastiCache 複寫群組在可用區域發生故障時靈活反應。此外,如果開啟異地同步備份,不會允許將複本置於與主節點相同的可用區域。
什麼情況下會使 ElastiCache 容錯移轉到僅供讀取複本?
如果發生以下任何情況,ElastiCache 將會容錯移轉到僅供讀取複本:
- 主可用區域的可用性受損
- 主可用區域的網路連線能力受損
- 主可用區域的運算單位故障
當主節點發生故障時,將提升哪個僅供讀取複本?
如果有多個僅供讀取複本,將提升對主節點非同步複寫延遲最小的僅供讀取複本。
執行自動容錯移轉時,我是否會收到警示?
是,ElastiCache 將建立事件,以通知您已執行自動容錯移轉。您可以使用 DescribeEvents API 返回與 ElastiCache 節點相關的事件資訊,或選取 ElastiCache 管理主控台的「事件」區段。
容錯移轉後,現在我的主節點與其他 AWS 資源 (例如 Amazon EC2 執行個體) 位於不同的可用區域。我是否需要擔心有延遲?
可用區域的設計是將低延遲網路連線能力提供給同一區域中的其他可用區域。您應考慮以跨多個可用區域的冗餘建構應用程式及其他 AWS 資源,以便在可用區域發生中斷時,應用程式能夠靈活反應。
可以在哪裡獲得多可用區域的詳細資訊?
如需多可用區域的詳細資訊,請參閱 ElastiCache 文件。
備份與還原
什麼是備份與還原?
備份與還原是一項功能,可讓您為 ElastiCache 快取建立快照。ElastiCache 會儲存這些快照,以便使用者之後用來還原快取。目前支援用於 ElastiCache for Valkey、ElastiCache for Redis OSS 和 Serverless。
為什麼需要快照?
如果因為節點故障和少見的硬體故障導致資料遺失,建立快照就非常有用。使用備份的另一個常見原因是用於存檔。快照存放在 Amazon S3 中。
備份與還原如何運作?
啟動備份時,ElastiCache 將拍攝特定快取的快照,之後可將其用於復原或封存。您隨時可以選擇啟動備份,也可以設定一個保留期長達 35 天每天重複進行的備份。當您選擇快照進行還原時,將會建立一個 ElastiCache 快取並填入快照的資料。ElastiCache 快照與 Redis OSS RDB 檔案格式相容。
如何開始使用備份與還原?
您可透過主控台、ElastiCache API 和 AWS CLI,來使用備份與還原功能。您可以選擇隨時停用和重新啟動此功能。
如何指定要備份的快取和節點?
備份與還原是以快取為基礎來建立快照。使用者可透過主控台、AWS CLI 或 ElastiCache API,指定要備份的 ElastiCache 快取。建議使用者在其中一個快取的讀取複本上啟用備份,將對主節點的任何潛在影響降至最低。使用 ElastiCache Serverless 時,會針對讀取複本自動執行備份。
是否可以將 ElastiCache 快照匯出到我擁有的 Amazon S3 儲存貯體?
是,您可以將 ElastiCache 快照匯出至與您的快取位於相同區域的授權 S3 儲存貯體。
我有多個使用 ElastiCache 的 AWS 帳戶。是否可以使用一個帳戶的 ElastiCache 快照來暖開機其他帳戶中 ElastiCache 叢集?
是。您必須先將快照複製到相同區域中所選的授權 S3 儲存貯體,然後將跨帳戶儲存貯體許可授予其他帳戶。
使用備份與還原的成本為何?
ElastiCache 為每個作用中的 ElastiCache 快取免費提供一個快照的儲存空間。額外儲存將根據快照佔用的空間收取費用,每月 0.085 USD/GB (所有區域的價格相同)。使用快照功能進行的資料傳輸是免費的。
如果刪除 ElastiCache 快取,我的快照會出現什麼情況?
當您刪除 ElastiCache 快取時,會保留您的手動快照。您還可以選擇在刪除快取之前建立最終快照。自動快取快照則不會保留。
增強型引擎
ElastiCache 內的引擎與 Redis OSS 有何不同?
ElastiCache 內的引擎與 Redis OSS 完全相容,但隨附可提升效能、穩健性和穩定性的增強功能。這些增強功能包括:
- 更多可用記憶體:您現在可以放心為應用程式分配更多記憶體,無須擔心同步和快照期間會增加交換使用量。
- 改善同步功能:針對高負載及從網路中斷恢復時,提供更穩固的同步功能。此外,由於主要節點和複本在此操作中不再需要使用磁碟,因此同步的速度更快。
- 更順暢的容錯移轉:在容錯移轉的情況下,由於複本不再需要排清資料,就能與主要節點進行完整的重新同步,因此現在可以更快復原碎片。
- TLS 卸載和 IO 多工處理:ElastiCache 旨在透過在專用執行緒上處理某些網路相關的程序,來更好地使用可用的 CPU 資源。
是否要變更應用程式的程式碼,才能使用 ElastiCache 上的增強型引擎?
否。增強型引擎與 Redis OSS 完全相容,因此您可以充分利用改進的穩健性和穩定性,而無須變更任何應用程式程式碼。
使用增強型引擎的費用為何?
使用增強型引擎無須額外付費。
加密
ElastiCache 靜態加密提供哪些功能?
ElastiCache 動態加密提供哪些功能?
傳輸中加密功能可協助用戶端與 ElastiCache 之間,以及伺服器 (主複本與讀取複本) 之間的通訊加密。閱讀更多有關 ElastiCache 傳輸中加密的資訊。
如何使用動態加密、靜態加密和 Redis OSS AUTH?
傳輸中加密、靜態加密、Redis OSS AUTH,以及以角色為基礎的存取控制 (RBAC) 是在建立 ElastiCache 快取時可選取的功能。如果啟用動態加密,則可以選擇使用 Redis OSS AUTH 或 RBAC 來增加安全性和存取控制。
更新 TLS 憑證是否需要執行任何動作?
否,ElastiCache 在幕後管理認證過期和更新。使用者不需採取任何動作即可繼續執行憑證維護。
使用加密是否需要額外付費?
否,使用加密無須額外付費。
Global Datastore
什麼是 ElastiCache Global Datastore?
Global Datastore 是 ElastiCache 的一項功能,提供全受管、快速、可靠且專注安全的跨區域複寫。透過 Global Datastore,您可以在一個區域寫入快取,然後從其他最多兩個跨區域複寫叢集讀取該資料,進而實現跨區域的低延遲讀取和災難復原。
Global Datastore 專為遍佈全球的即時應用程式設計,通常在一秒內即可複寫跨區域的資料,透過提供更接近最終使用者的地理位置讀取來提高應用程式的回應速度。在罕見的區域性降級情況下,可以將一個運作正常的跨區域複寫快取提升為具有完全讀取和寫入功能的主快取。開始升級之後,通常會在一分鐘之內完成,讓您的應用程式不會停擺。
我可以複寫到多少個 AWS 區域?
您最多可以複寫到 Global Datastore 中的兩個次要區域。在不太可能發生區域降級的情況下,次要區域中的快取可用於提供低延遲區域讀取和災難復原。
哪些引擎版本支援 Global Datastore?
ElastiCache for Redis 5.0.6 或更新版本支援 Global Datastore。
在主叢集 (區域) 降級的情況下,ElastiCache 是否會自動容錯移轉 Global Datastore 並升級次要叢集?
否,當主叢集 (區域) 降級時,ElastiCache 不會自動升級次要叢集。您可以透過將次要叢集升級為主叢集來手動啟動容錯移轉。容錯移轉和升級次要叢集通常可以在一分鐘內完成。
使用 Global Datastore 時,如何保護我的資料?
Global Datastore 會針對跨區域流量使用傳輸中加密,確保資料更安全。此外,您還可以使用靜態加密進行主快取和次要快取的加密,以確保您的資料更安全。每個主快取和次要快取都可以有一個由單獨的客戶受管 AWS KMS key 來進行靜態加密。
Global Datastore 的定價為何?
ElastiCache 並未提供 RPO 和 RTO 的 SLA。RPO 會因為區域之間的複寫延遲而不同,而且取決於區域之間的網路延遲和跨區域網路流量的擁堵狀況。Global Datastore 的 RPO 通常不到一秒,因此寫入主區域的資料在一秒鐘之內即可供次要區域使用。Global Datastore 的 RTO 通常不到一分鐘。一旦開始容錯移轉至次要叢集,ElastiCache 通常會在一分鐘內將次要叢集升級為具備完全讀取和寫入功能。
Global Datastore 提供何種復原點目標 (RPO) 和復原時間點目標 (RTO)?
ElastiCache 並未提供 RPO 和 RTO 的 SLA。RPO 會因為區域之間的複寫延遲而不同,而且取決於區域之間的網路延遲和跨區域網路流量的擁堵狀況。Global Datastore 的 RPO 通常不到一秒,因此寫入主區域的資料在一秒鐘之內即可供次要區域使用。Global Datastore 的 RTO 通常不到一分鐘。一旦開始容錯移轉至次要叢集,ElastiCache 通常會在一分鐘內將次要叢集升級為具備完全讀取和寫入功能。
資料分層
什麼是適用於 ElastiCache 的資料分層?
除了將資料儲存在記憶體中之外,資料分層還透過在每個叢集節點中使用成本較低的固態硬碟 (SSD) 提供一種全新的價格效能比選項。它非常適合定期存取多達 20% 的整個資料集的工作負載,以及在存取 SSD 上的資料時可以容忍額外延遲的應用程式。相較於僅使用記憶體的 ElastiCache R6g 節點,具有記憶體和 SSD 的 ElastiCache R6gd 節點的總儲存容量增加了近 5 倍,並且可以協助客戶在以最大使用率執行時,節省 60% 以上的成本。
資料分層如何運作?
資料分層的工作原理是,當可用記憶體容量完全耗盡時,將最近使用最少的項目從記憶體中自動透明地移動到本地連接的 NVMe SSD。當隨後存取移動到 SSD 的項目時,ElastiCache 會在為請求提供服務之前將其異步移回記憶體。
使用含資料分層的叢集時會產生什麼樣的效能?
資料分層設計用於對應用程式效能的影響最低。假設 500 位元組的字串值,與對記憶體中資料的請求相比,對儲存在 SSD 上的資料的請求平均會額外增加 300 微秒的延遲。
哪種引擎版本支援資料分層?
ElastiCache 支援 ElastiCache for Redis OSS 6.2 版及更高版本的資料分層。
哪些節點類型支援資料分層?
ElastiCache 支援使用 R6gd 節點的叢集上的資料分層。
使用資料分層的叢集支援哪些 ElastiCache 功能?
使用資料分層時,支援所有 Valkey 和 Redis OSS 命令和大多數的 ElastiCache 功能。如需使用資料分層的叢集上不支援的功能清單,請參閱文件。
什麼是適用於 ElastiCache 的資料分層價格?
除了節點的每小時成本,使用資料分層無需額外費用。使用資料分層的節點可以按需定價和作為預留節點使用。如需定價,請參閱 ElastiCache 定價頁面。