引擎版本和升級 - Amazon ElastiCache (雷迪斯 OSS)

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

引擎版本和升級

ElastiCache (Redis 的 OSS)版本與包括一個主要和次要組件的語義版本標識。例如,在 Redis 的 OSS 6.2 中,主要版本是 6,次要版本 2。在操作自行設計的叢集時 ElastiCache (Redis OSS) 也會公開修補程式元件,例如 Redis OSS 6.2.1,而修補程式版本為 1。

MAJOR 版本適用於 API 不相容變更,而 MINOR 版本適用於以回溯相容方式新增的功能。PATCH 版本適用於回溯相容的錯誤修正和非功能性變更。

ElastiCache 無伺服器的版本管理

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

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

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

使用自行設計的 ElastiCache 叢集時,您可以控制支援快取叢集的軟體何時升級為支援的新版本。 ElastiCache 您可以控制何時將快取升級到最新可用的主要、次要和修補程式版本。您可以修改引擎版本並指定新的引擎版本,以初始化叢集或複寫群組的引擎版本升級。

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

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

您可以修改引擎版本並指定新的引擎版本,以初始化叢集或複寫群組的引擎版本升級。如需詳細資訊,請參閱下列內容:

使用自行設計的叢集時的升級考量

注意

下列考量僅適用於升級自行設計之叢集的情況。它們不適用 ElastiCache 於無伺服器。

升級自行設計的叢集時,請考量下列事項:

  • 引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,但是,如果系統或快取軟體中出現嚴重安全性漏洞,則 ElastiCache 保留代表您修補叢集的權利。

  • 從 Redis OSS 6.0 開始, ElastiCache (Redis OSS) 將為每個 Redis 的 OSS 次要版本提供單一版本,而不是提供多個修補程式版本。

  • 從 Redis OSS 引擎版本 5.0.6 開始,您可以在最短的停機時間內升級叢集版本。叢集在整個升級過程中都可供讀取,而在過程的多數時間也可供寫入,除了在容錯移轉操作中會有幾秒可能無法寫入。

  • 您也可以使用 5.0.6 之前的版本升級 ElastiCache 叢集。所涉及的程序相同,但可能會在 DNS 傳播期間產生較長的容錯移轉時間 (30s-1m)。

  • 從 Redis 的 OSS 7 開始, ElastiCache (Redis 的 OSS) 支援 Redis 的 OSS (叢集模式停用) 和 Redis OSS (群集模式啟用) 之間切換。

  • Amazon ElastiCache (Redis OSS) 引擎升級程序旨在盡最大努力保留您現有的資料,並且需要成功的 Redis OSS 複寫。

  • 升級引擎時, ElastiCache (Redis OSS) 將終止現有的用戶端連線。為了將引擎升級期間的停機時間降到最低,我們建議您針對 Redis OSS 用戶端實作最佳實務,包含錯誤重試和指數輪詢,以及將維護期間停機時間降至最低的最佳做法。

  • 升級引擎時,您無法直接從 Redis OSS (叢集模式停用) 升級至 Redis OSS (已啟用叢集模式)。下列程序說明如何從 Redis OSS (叢集模式停用) 升級至 Redis OSS (已啟用叢集模式)。

    若要從 Redis OSS (叢集模式停用) 升級至 Redis OSS (已啟用叢集模式) 引擎版本
    1. 備份 Redis OSS (叢集模式已停用) 叢集或複寫群組。如需詳細資訊,請參閱 取得手動備份

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

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

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

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

  • 對於停用異地同步備份的單一 Redis OSS 叢集和叢集,建議 Redis OSS 提供足夠的記憶體,如中所述。確定您有足夠的記憶體來建立 Redis OSS 快照在這類案例中,主要叢集將無法在升級期間處理服務的請求。

  • 對於啟用異地同步備份的 Redis OSS 叢集,我們也建議您在低傳入寫入流量期間排程引擎升級。升級至 Redis OSS 5.0.6 或更新版本時,在升級程序期間,主要叢集仍可供服務要求使用。

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

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

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

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

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

如何升級引擎版本

您可以使用 ElastiCache 主控台、或 ElastiCache API 修改叢集或複寫群組,並指定較新的引擎版本 AWS CLI,以啟動叢集或複寫群組的版本升級。如需詳細資訊,請參閱下列主題。

解決遭封鎖的 Redis OSS 引擎升級

如下表所示,如果您有擱置的擴充作業,則會封鎖 Redis OSS 引擎升級作業。

待定作業 封鎖的作業
向上擴展 立即升級引擎
引擎升級 立即向上擴展
向上擴展與升級引擎 立即向上擴展
立即升級引擎
若要解決遭封鎖的 Redis OSS 引擎升級
  • 執行以下任意一項:

    • 清除立即套用核取方塊,排定 Redis OSS 引擎升級作業的下一個維護時段。

      若是 CLI,使用 --no-apply-immediately。若是 API,使用 ApplyImmediately=false

    • 請等到下一個維護時段 (或之後) 執行 Redis OSS 引擎升級作業。

    • 選取 [立即套用] 核取方塊,將 Redis OSS 擴充作業新增至此叢集修改。

      若是 CLI,使用 --apply-immediately。若是 API,使用 ApplyImmediately=true

      此方法會立即執行引擎升級,而取消下一個維護時段的引擎升級。