本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理您要如何更新 ElastiCache 快取,以及針對 Valkey、Memcached 和 Redis OSS 引擎更新自行設計的叢集。
ElastiCache Serverless Cache 的版本管理
管理 ElastiCache Serverless 快取是否升級以及何時升級,並根據您自己的期限和時間表執行版本升級。
ElastiCache Serverless 會自動將最新的次要和修補程式軟體版本套用至您的快取,而不會對應用程式造成任何影響或停機。您不需要進行任何動作。
當推出新的主要版本時,ElastiCache Serverless 會在主控台傳送通知給您,並在 EventBridge 中傳送事件。您可以選擇使用主控台、CLI 或 API 修改快取,然後選取最新的引擎版本,以將快取升級至最新的主要版本。
自行設計的 ElastiCache 叢集的版本管理
使用自行設計的 ElastiCache 叢集時,您可以控制何時將支援您快取叢集的軟體升級到 ElastiCache 支援的新版本。您可以控制何時將快取升級到最新可用的主要、次要和修補程式版本。您可以修改引擎版本並指定新的引擎版本,以初始化叢集或複寫群組的引擎版本升級。
您可以控制是否以及何時將支援快取叢集的通訊協定合規軟體升級到 ElastiCache 支援的新版本。這一層控制可讓您維持特定版本的相容性、在部署至生產環境前先利用您的應用程式測試新版本,並根據自己的期限和時間表執行版本升級。
由於版本升級可能涉及一定的相容性風險,因此這些升級不會自行啟動,必須由您啟動。
Valkey 和 Redis OSS 叢集
注意
-
如果跨一或多個區域複寫 Valkey 或 Redis OSS 叢集,則會針對次要區域升級引擎版本,然後針對主要區域升級引擎版本。
ElastiCache for Redis OSS 版本會以語意版本識別,該版本包含 MAJOR 和 MINOR 元件。例如,在 Redis OSS 6.2 中,主要版本為 6,次要版本為 2。操作自行設計的叢集時,ElastiCache for Redis OSS 也會公開 PATCH 元件,例如 Redis OSS 6.2.1,且修補程式版本為 1。
MAJOR 版本適用於 API 不相容變更,而 MINOR 版本適用於以回溯相容方式新增的功能。PATCH 版本適用於回溯相容的錯誤修正和非功能性變更。
使用 Valkey 和 Redis OSS,您可以透過修改並指定新的引擎版本,來啟動對叢集或複寫群組的引擎版本升級。如需詳細資訊,請參閱修改複寫群組。
Memcached
使用 Memcached,若要升級至較新的版本,您必須修改快取叢集,並指定要使用的新引擎版本。升級至更新版本的 Memcached 是一種破壞性程序,您會失去所有資料,並從空白快取開始。如需詳細資訊,請參閱修改 ElastiCache 叢集。
從舊版 Memcached 升級到 Memcached 1.4.33 版或更新版本時,請注意下列要求。CreateCacheCluster
和 ModifyCacheCluster
必須滿足下列條件:
-
如果
slab_chunk_max > max_item_size
。 -
如果
max_item_size modulo slab_chunk_max != 0
。 -
如果
max_item_size > ((max_cache_memory - memcached_connections_overhead) / 4)
。(max_cache_memory - memcached_connections_overhead)
值是節點可供資料使用的記憶體。如需詳細資訊,請參閱Memcached 連線額外負荷。
使用自行設計的叢集時的升級考量
注意
下列考量僅適用於升級自行設計之叢集的情況。不適用 ElastiCache Serverless。
Valkey 和 Redis OSS 考量事項
升級自行設計的 Valkey 或 Redis OSS 叢集時,請考慮下列事項。
引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,但在系統或快取軟體可能存在關鍵安全漏洞的情況下,ElastiCache 保留代您修補叢集的權利。
從適用於 Valkey 的 ElastiCache 7.2 版和適用於 Redis OSS 的 ElastiCache 6.0 版開始,ElastiCache 將為每個次要版本提供單一版本,而不是提供多個修補程式版本。
從 Redis OSS 引擎 5.0.6 版開始,您可以在最短的停機時間下升級叢集版本。叢集在整個升級過程中都可供讀取,而在過程的多數時間也可供寫入,除了在容錯移轉操作中會有幾秒可能無法寫入。
您也可以升級 5.0.6 以前版本的 ElastiCache 叢集。所涉及的程序相同,但可能會在 DNS 傳播期間產生較長的容錯移轉時間 (30s-1m)。
-
從 Redis OSS 7 開始,ElastiCache 支援在 Valkey 或 Redis OSS (停用叢集模式) 與 Valkey 或 Redis OSS (啟用叢集模式) 之間切換。
-
Amazon ElastiCache for Redis OSS 引擎升級程序旨在盡最大努力保留現有資料,且需要成功的 Redis OSS 複寫。
-
升級引擎時,ElastiCache 會終止現有的用戶端連線。為了在引擎升級期間將停機時間降至最低,我們建議您為 Redis OSS 用戶端實作最佳實務,並採用錯誤重試和指數退避,以及將維護期間的停機時間降至最低的最佳實務。
-
升級引擎時,您無法直接從 Valkey 或 Redis OSS (停用叢集模式) 升級到 Valkey 或 Redis OSS (啟用叢集模式)。下列程序說明如何從 Valkey 或 Redis OSS (停用叢集模式) 升級到 Valkey 或 Redis OSS (啟用叢集模式)。
從 Valkey 或 Redis OSS (停用叢集模式) 升級到 Valkey 或 Redis OSS (啟用叢集模式) 引擎版本
-
備份您的 Valkey 或 Redis OSS (停用叢集模式) 叢集或複寫群組。如需詳細資訊,請參閱取得手動備份。
-
使用備份建立並植入具有一個碎片的 Valkey 或 Redis OSS (啟用叢集模式) 叢集 (節點群組)。指定新的引擎版本,並在建立叢集或複寫群組時啟用叢集模式。如需詳細資訊,請參閱教學課程:使用外部建立的備份來尋找新的自我設計叢集。
-
刪除舊的 Valkey 或 Redis OSS (停用叢集模式) 叢集或複寫群組。如需詳細資訊,請參閱 在 ElastiCache 中刪除叢集 或 刪除複寫群組。
-
將新的 Valkey 或 Redis OSS (啟用叢集模式) 叢集或複寫群組擴展到您需要的碎片數量 (節點群組)。如需詳細資訊,請參閱 在 Valkey 或 Redis OSS 中擴展叢集 (啟用叢集模式)
-
-
升級主要引擎版本 (例如從 5.0.6 升級到 6.0) 時,還需要選擇一個與新引擎版本相容的新參數群組。
-
對於停用異地同步備份的單一 Redis OSS 叢集和叢集,建議如 中所述,為 Redis OSS 提供足夠的記憶體確保您有足夠的記憶體來製作 Valkey 或 Redis OSS 快照。在這類案例中,主要叢集將無法在升級期間處理服務的請求。
-
對於啟用多可用區域功能的 Redis OSS 叢集,我們也建議您在低傳入寫入流量期間排程引擎升級。升級至 Redis OSS 5.0.6 或更新版本時,主要叢集在升級程序期間仍可繼續供服務請求使用。
系統會依下列方式處理及修補含多個碎片的叢集和複寫群組:
-
所有碎片都會平行處理。不論任何時間,一個碎片上都只能執行一項升級操作。
-
在每個碎片中,都會先處理所有複本,再處理主要複本。如果某個碎片中的複本較少,則該碎片中的主要複本可能會在其他碎片的複本處理完成前就已處理。
-
跨所有碎片時,則會循序處理主要節點。一次只會升級一個主要節點。
-
-
如果您目前的叢集和複寫群組已啟用加密功能,就無法升級到不支援加密的引擎版本,例如從 3.2.6 升級到 3.2.10。
Memcached 考量事項
升級自行設計的 Memcached 叢集時,請考慮下列事項。
引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,但在系統或快取軟體可能存在關鍵安全漏洞的情況下,ElastiCache 保留代您修補叢集的權利。
-
由於 Memcached 引擎不支援永久儲存,因此 Memcached 引擎版本升級一定是破壞性程序,並會清除叢集中的所有快取資料。