的版本管理 ElastiCache - Amazon ElastiCache

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

的版本管理 ElastiCache

管理您要如何更新為 Valkey、Redis 和 Memcached 引擎更新的 ElastiCache 快取OSS和自行設計的叢集。

ElastiCache Serverless Cache 的版本管理

管理無 ElastiCache 伺服器快取升級和升級的時間,並根據自己的條款與條件執行版本升級。

ElastiCache Serverless 會自動將最新的 MINOR和 PATCH 軟體版本套用至快取,而不會對您的應用程式造成任何影響或停機。您不需要進行任何動作。

當新MAJOR版本可用時, ElastiCache Serverless 會在主控台中傳送通知,並在 中傳送事件給您 EventBridge。您可以選擇使用主控台、 或 修改快取API,然後選擇最新的引擎版本CLI,以將快取升級至最新的主要版本。

自我設計 ElastiCache 叢集的版本管理

使用自行設計的 ElastiCache 叢集時,您可以控制為快取叢集供電的軟體何時升級至 支援的新版本 ElastiCache 。您可以控制何時將快取升級至最新的可用 MINOR、 MAJOR和 PATCH版本。您可以修改引擎版本並指定新的引擎版本,以初始化叢集或複寫群組的引擎版本升級。

您可以控制為快取叢集供電的通訊協定相容軟體是否和何時升級至 支援的新版本 ElastiCache。這一層控制可讓您維持特定版本的相容性、在部署至生產環境前先利用您的應用程式測試新版本,並根據自己的期限和時間表執行版本升級。

由於版本升級可能涉及一定的相容性風險,因此這些升級不會自行啟動,必須由您啟動。

Valkey 和 Redis OSS叢集

注意
  • 如果 Valkey 或 Redis OSS叢集在一或多個區域中複寫,則會針對次要區域升級引擎版本,然後針對主要區域升級引擎版本。

  • ElastiCache (Redis OSS) 版本會以語意版本識別,該版本包含 MAJOR和 MINOR元件。例如,在 Redis OSS 6.2 中,主要版本為 6,次要版本為 2。操作自行設計的叢集時, ElastiCache (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 版或更新版本時,請注意下列要求。CreateCacheClusterModifyCacheCluster 必須滿足下列條件:

  • 如果 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 7.2 和 Redis OSS 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 (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(啟用叢集模式) 引擎版本
    1. 備份您的 Valkey 或 Redis OSS(停用叢集模式) 叢集或複寫群組。如需詳細資訊,請參閱取得手動備份

    2. 使用備份建立並植入具有一個碎片 OSS(節點群組) 的 Valkey 或 Redis (啟用叢集模式) 叢集。指定新的引擎版本,並在建立叢集或複寫群組時啟用叢集模式。如需詳細資訊,請參閱教學課程:使用外部建立的備份來尋找新的自我設計叢集

    3. 刪除舊的 Valkey 或 Redis OSS(停用叢集模式) 叢集或複寫群組。如需詳細資訊,請參閱 在 中刪除叢集 ElastiCache刪除複寫群組

    4. 將新的 Valkey 或 Redis OSS(啟用叢集模式) 叢集或複寫群組擴展到您需要的碎片數量 (節點群組)。如需詳細資訊,請參閱 在 Valkey 或 Redis 中擴展叢集 OSS(已啟用叢集模式)

  • 升級主要引擎版本 (例如從 5.0.6 升級到 6.0) 時,還需要選擇一個與新引擎版本相容的新參數群組。

  • 對於停用多可用區域之單一 Redis OSS叢集和叢集,建議OSS如 所述為 Redis 提供足夠的記憶體確保您有足夠的記憶體來製作 Valkey 或 Redis OSS快照。在這類案例中,主要叢集將無法在升級期間處理服務的請求。

  • 對於啟用多可用區域功能的 Redis OSS叢集,我們也建議您在低傳入寫入流量期間排程引擎升級。升級至 Redis OSS 5.0.6 或更新版本時,主要叢集在升級過程中仍可繼續用於服務請求。

    系統會依下列方式處理及修補含多個碎片的叢集和複寫群組:

    • 所有碎片都會平行處理。不論任何時間,一個碎片上都只能執行一項升級操作。

    • 在每個碎片中,都會先處理所有複本,再處理主要複本。如果某個碎片中的複本較少,則該碎片中的主要複本可能會在其他碎片的複本處理完成前就已處理。

    • 跨所有碎片時,則會循序處理主要節點。一次只會升級一個主要節點。

  • 如果您目前的叢集和複寫群組已啟用加密功能,就無法升級到不支援加密的引擎版本,例如從 3.2.6 升級到 3.2.10。

Memcached 考量事項

升級自我設計的 Memcached 叢集時,請考慮下列事項。

  • 引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,不過, ElastiCache 保留在系統或快取軟體中不太可能發生重大安全漏洞時,代表您修補叢集的權利。

  • 由於 Memcached 引擎不支援永久儲存,因此 Memcached 引擎版本升級一定是破壞性程序,並會清除叢集中的所有快取資料。