因應 MySQL 社區版本 v5.7 即將結束,AWS 推出 Amazon RDS 延伸支援消息發佈
隨著 MySQL 社區版本 v5.7 即將於 2023 年 10 月結束生命週期,AWS 正在積極為這一重要過渡做準備。當MySQL 5.7達到社區生命周期結束時,社區將不會發佈進一步的更新,錯誤修復或安全補丁。我們瞭解 Amazon Relational Database Service(Amazon Aurora 和 Amazon RDS)我們理解客戶可能對在 MySQL 5.7 生命週期結束之前,從 MySQL 5.7 升級持保留態度。升級到新的主要版本可能會造成服務中斷,尤其是在大型生產環境或依賴於特定主要版本的舊版應用程式時。但是,在 MySQL 生命週期結束後繼續使用不受支援的版本可能會使您的數據容易受到安全漏洞和披露 (CVE) 的影響。
AWS 已宣佈推出 Amazon RDS 延伸支援,以便您可以按照滿足業務需求的速度升級到新的主要版本。我們強烈建議客戶在 Amazon Aurora 和 Amazon RDS 標準支援日期結束之前儘快將其 MySQL 5.7 資料庫 集群升級到 MySQL 8.0。升級到 MySQL 8.0 具有許多優勢,包括增強的性能、高級功能以及在 MySQL 8.0 生命週期內來自開源社區的持續支援。在這篇文章中,我們將討論 Amazon RDS 延伸支援的含義、其主要優勢以及升級到 Amazon Aurora 和 Amazon RDS for MySQL 8.0 的選項。
什麼是 Amazon RDS 延伸支援?
現在我們已經回顧了社區 MySQL 5.7 生命週期結束時程表,讓我們更詳細地探討 Amazon RDS 對 MySQL 5.7 的延伸支援。RDS 延伸支援是一項付費服務,會在開源社區支持結束後最多三年內提供 RDS 為 Amazon Aurora MySQL 或 RDS for MySQL 的主要版本提供關鍵安全性和錯誤修復。瞭解此選項將幫助您做出有關維護舊系統的明智決策。儘管 RDS 延伸支援期為您提供了額外的時間來規劃和測試升級,但您應將 Amazon Aurora 和 Amazon RDS 標準支援終止日期視為生產系統的建議遷移的里程碑。明智地使用 RDS 延伸支援來為您的資料庫和應用程式找到正確的升級路徑。儘早測試可以有時間在相容性問題影響線上服務之前修復它們。
下圖總結了 Amazon Aurora 和 RDS for MySQL 標準支援 (EoS) 終止日期和 RDS 延伸支援 (ES) 日期:
Amazon Aurora MySQL 兼容版:
請注意:Aurora MySQL 2 的延伸支持於 2024 年 11 月 1 日開始,但直到 2024 年 12 月 1 日才會開始收費。11 月 1 日至 11 月 30 日期間,所有 Aurora MySQL 2 集群都包含在 RDS 延伸支持範圍內。
Amazon RDS for MySQL:
Amazon RDS 對 Amazon Aurora MySQL 2 和 Amazon RDS for MySQL 5.7 的延伸支援將提供:
* 針對關鍵和高風險評估項目(CVE) 的持續安全更新。
* 針對關鍵問題的bug修復和修補程式。
* 能夠在標準 Amazon RDS SLA 中打開支援案例並獲得故障排除説明。
這使您可以自信地運行成熟、穩定的 MySQL 5.7 版本,直到延伸支援期結束。RDS 延伸支援在 Aurora 或 RDS 標準支援日期終止後最多提供 3 年。RDS 延伸支持費用取決於自 RDS 標準支援過期以來經過的年數。有關更多資訊,請參閱 Amazon Aurora 定價和 Amazon RDS 定價。
如果您未在 RDS EoS 日期之前加入加入 RDS Extended Support for Amazon Aurora 2 或 Amazon RDS for MySQL 5.7,您的集群或實例將自動升級到 Aurora MySQL 3 或 RDS for MySQL 8.0 的最新受支援次要版本。這可確保資料庫保持安全和受支援。但是,如果應用程式尚未準備好使用 MySQL 8.0,計劃外的主要版本升級可能會引入相容性問題或停機。選擇加入 RDS 外延支援後,您可以更好地控制自己的時程表來規劃和測試升級。RDS 外延支援僅在 RDS 標準支援結束日期之前發佈的最後一個次要版本上可用。
RDS 延伸支援適用於 RDS for MySQL 5.7 的最新次要版本和 Aurora MySQL 上的某些次要版本。要查看受支援版本的清單,請參閱 Amazon RDS 上支援的 MySQL 主要版本和 Amazon Aurora 主要版本。
何時需要延伸支援?
RDS 延伸支援允許組織根據自己的時程表規劃升級,從而靈活地過渡到新的主要版本,同時繼續從 AWS 獲得關鍵的安全性和錯誤修復。利用最新特性和功能的應用程式可能需要考慮在 Aurora 或 RDS 標準支援日期結束之前升級到 MySQL 8.0。在我們重點介紹 MySQL 8.0 的關鍵優勢之前,讓我們討論一下 RDS 延伸支援可能對您有用的場景。
應用程式依賴項 – 某些應用程式可能對 MySQL 主要版本 5.7 具有特定的依賴項,例如與某些外掛程式或自定義功能的相容性。將這些應用程式遷移到較新版本可能是一個複雜且耗時的過程。通過利用 Amazon RDS 對 MySQL 5.7 的延伸支援,企業可以在規劃和測試與 MySQL 8.0 的相容性時繼續使用其當前資料庫版本,而不會中斷應用程式工作流。
自我管理的 MySQL:對於在本地或 EC2 上運行自我管理的 MySQL 5.7 的客戶,在生命週期結束之後維護社區版本會帶來運營負擔,並使他們面臨 CVE。相反,您可以在啟用 RDS 延伸支持的情況下遷移到 Aurora MySQL 2 或 RDS for MySQL 5.7。通過遷移到具有 RDS 延伸支援的託管服務,而不是操作不受支援的版本,您可以從雲中的可擴充性、可管理性和安全性中受益。
大型佇列要求 – 在大規模環境中,將大量資料庫遷移到新版本在邏輯上可能具有挑戰性。對 MySQL 5.7 的延伸支援允許企業分階段遷移過程,確保平穩過渡,而不會使 IT 資源不堪重負。這種分階段的方法使組織能夠在完成整個遷移之前測試和驗證升級對其佇列子集的影響。
如果這些情況適用於您,或者您無法在 Amazon Aurora 或 Amazon RDS EoS 日期之前完成升級(請參閱上圖),我們建議您選擇加入 Amazon RDS 延伸支援。從 2023 年 12 月開始,可以通過 Amazon RDS 管理控制台或使用 AWS CLI 或 Amazon RDS API 為每個集群或實例啟用 RDS 延伸支援。
儘管 RDS 外延支援可説明您按照自己的時程表安排升級,但無限期地堅持使用舊版本意味著錯過工作負載的最佳性價比。接下來,我們將重點介紹升級到 MySQL 8.0 的原因。
升級到 Amazon Aurora MySQL 相容版 3 的主要優勢
Aurora MySQL 相容版上的 MySQL 8.0(也稱為 Aurora MySQL 3)支援流行的 Aurora 功能,包括全域資料庫、Amazon RDS 代理、性能詳情、並行查詢和無伺服器 v2 部署。
社區增強功能 – MySQL 8.0 包括改進的性能功能,例如即時 DDL,以加快創建和載入表及其關聯索引的整個過程,以及跳過鎖定和 NOWAIT 選項,以避免等待其他事務釋放行鎖。MySQL 8.0 添加了開發人員生產力功能,例如視窗函數,以便更輕鬆地解決查詢問題,以及通用表運算式,以支援使用命名的臨時結果集。它還包括 JSON 功能添加、新的安全功能等。有關更多資訊,請參閱 MySQL 8.0 社區版的功能。
Aurora Serverless v2 – Amazon Aurora MySQL 3(與 MySQL 8.0 相容)支援 Aurora Serverless v2,可即時、自動和按需擴展,以支援要求最苛刻的應用程式,與預置峰值容量相比,可節省高達 90% 的成本。Aurora Serverless v2 提供全面的 Amazon Aurora 功能,包括多可用區支援、全域資料庫、RDS 代理和唯讀副本。Amazon Aurora Serverless v2 是各種應用程式的理想選擇。例如,擁有數十萬個應用程式的企業,或擁有包含數百或數千個資料庫的多租戶環境的軟體即服務 (SaaS) 供應商可以使用 Aurora 無伺服器 v2 來管理整個佇列中的資料庫容量。
Amazon Aurora Zero-ETL – Amazon Aurora MySQL 3 現在支援與 Amazon Redshift 的零 ETL 集成,此功能支援對存儲在 Amazon Aurora 中的 PB 級事務數據進行近乎即時的分析和機器學習 (ML)。寫入 Aurora 的數據可在幾秒鐘內在 Amazon Redshift 中使用,因此您可以快速採取行動,而無需構建和維護複雜的數據管道。
Amazon Aurora I/O Optimized – Amazon Aurora MySQL 3 支援 Aurora I/O 優化配置,為擁有 I/O 密集型應用程式(I/O 費用超過 Aurora 資料庫總支出的 25%)的客戶提供更高的性價比和可預測的定價,並節省高達 40% 的成本。因此,為客戶要求最苛刻的工作負載提高輸送量並減少延遲。
AWS Graviton3 支援 – Amazon Aurora MySQL 3 支援基於 AWS Graviton3 的 R7g 實例。與適用於 Aurora 的 Graviton2 實例相比,這些實例的性能提升高達 30%,性價比提升高達 20%,具體取決於工作負載、資料庫引擎和版本。
增強的二進位日誌(二進位日誌) - 在 Aurora MySQL 3.03 版本(與 MySQL 8.0.26 相容)及更高版本中,Aurora 對二進位日誌的編寫和存儲方式引入了額外的、更根本的更改。增強的二進位日誌可減少因啟用二進位日誌而導致的計算性能開銷,在某些情況下,二進位日誌最高可達 50%,降至 13%。這反過來又允許在同一硬體上增加事務處理輸送量。與啟用本機 MySQL 二進位日誌時相比,增強的二進位日誌還將重新啟動和故障轉移後的資料庫恢復時間縮短了多達 99%。
升級到 Amazon RDS for MySQL 8.0 的主要優勢
與堅持使用 MySQL 5.7 相比,升級到 Amazon RDS for MySQL 8.0 具有多個優勢,包括:
社區增強功能 – 允許訪問新的 8.0 功能,如原子 DDL、後代臨時表、新的 JSON 函數、公用表運算式 (CTE) 等。有關更多資訊,請參閱 MySQL 8 中的新增功能。
更好的性能 – 與 MySQL 5.7 相比,性能提高了 2 倍;針對讀寫、IO 綁定和高爭用「熱點」工作負載的 InnoDB 性能優化;複製性能改進;降序索引;不可見的索引;成本模型改進以考慮緩衝池的內容;和「資源組」,允許使用者按工作負載控制資源使用方式並確定其優先順序。
具有兩個可讀備用資料庫的 Amazon RDS Multi-AZ – Amazon RDS MySQL 8.0 支援 多可用區集群部署。這通常在 35 秒內提供自動故障轉移,與具有一個備用的多可用區相比,事務提交延遲速度提高了 2 倍,額外的讀取容量以及基於 AWS Graviton2 或 Intel 的計算實例可供選擇。Amazon RDS 多可用區集群部署提供增強的可用性和持久性,使其非常適合生產 MySQL 資料庫工作負載。
Amazon RDS 優化寫入 – RDS 優化寫入使用更快的順序 I/O 進行緩衝區刷新和提交操作。可以在不收取額外費用的情況下將寫入事務輸送量提高多達 2 倍,並且具有相同級別的預配置 IOPS。優化寫入非常適合生成大量併發事務的寫入密集型工作負載。這包括數位支付、金融交易平臺和在線遊戲。
Amazon RDS 優化讀取 – RDS 優化讀取通過將 MySQL 生成的臨時表放置在物理連接到主機伺服器的基於 NVMe 的 SSD 塊存儲上,可以實現更快的查詢處理。使用臨時表的查詢(例如涉及排序、哈希聚合、高負載聯接和 CTE 的查詢)通過優化讀取的執行速度最多可提高 2 倍。
AWS Graviton2 和 Graviton3 支援 – Amazon RDS MySQL 8.0 支援 Graviton2 和新的 Graviton3 EC2 實例。Graviton 處理器由 AWS 使用 64 位 Arm Neoverse 內核定製構建,與第一代 AWS Graviton 處理器相比,提供了多項優化。通過升級到 Amazon Aurora MySQL 3 或 Amazon RDS for MySQL 8.0,您可以利用這些優化和功能來提高資料庫性能、降低成本並啟用新的使用案例。社區版本還在MySQL 8.0的生命週期內帶來了定期的安全性和錯誤修復。
從 Amazon Aurora 和 Amazon RDS for MySQL 5.7 升級到 8.0 的升級選項
從 Amazon Aurora 或 Amazon RDS for MySQL 5.7 升級到 MySQL 8.0 涉及主要版本升級,該升級可能包含與現有應用程式不向後相容的資料庫更改。您必須手動修改資料庫實例才能升級主要版本。強烈建議您在將任何主要版本升級應用於生產環境之前,先在非生產實例上全面測試任何主要版本升級,以確保與您的應用程式相容。
您可以將集群或實例從 MySQL 5.7 就地升級到 MySQL 8.0。此升級方法更簡單,因為您不必修改應用程式連接字串。就地升級方法很方便。但是,此過程需要停機,在此期間應用程式將無法與資料庫建立連接。此停機時間可能會有所不同,具體取決於架構的屬性以及集群或實例的繁忙程度。請務必注意,由於兩個版本之間的某些不相容性,通過就地升級從 MySQL 5.7 升級到 MySQL 8.0 可能會遇到挑戰 。有關更多資訊,請參閱:Amazon Aurora MySQL 就地主要版本升級和適用於 MySQL 的 Amazon RDS 升級。
由於資料庫引擎升級需要停機,因此建議使用 Amazon RDS 託管藍/綠部署,以便在升級 MySQL 資料庫實例時最大程度地減少停機時間。這涉及使用 Amazon Aurora 或 Amazon RDS for MySQL 8.0 生產資料庫的副本啟動並行“綠色”環境。驗證綠色環境后,您可以將流量轉移到綠色環境。然後,「藍色」MySQL 5.7 環境可以停用。以這種方式暫存升級推出可消除停機時間。
在大多數情況下,藍/綠部署是在升級 MySQL 資料庫集群或實例時減少停機時間的最佳選擇。如果由於 Aurora MySQL 限制或 RDS MySQL 限制而無法使用藍/綠部署,則可以使用 Amazon Aurora 克隆或 Amazon RDS for MySQL 只讀副本。這將通過提前執行升級和測試來説明最大程度地減少升級停機時間。
要升級 Aurora 集群,請創建具有相同主要和次要版本的 Aurora 克隆。在原始集群和克隆集群之間配置二進位日誌複製。將克隆升級到新的主要版本后,請全面測試所有應用程式功能。對於 Amazon RDS 實例,這涉及創建與主實例具有相同主版本和次要版本的託管只讀副本、將副本升級到新的主要版本(即 MySQL 8.0)以及驗證完整的應用程式功能。
測試完成並準備好進行切換后,必須停止應用程式的工作負載(中斷)以允許複製趕上進度。然後,將 Aurora 克隆或 RDS 只讀副本提升到獨立集群/實例,並將應用程式重定向到升級的系統。有關更多詳細資訊步驟,請參閱以最短的停機時間為 Amazon Aurora MySQL 執行主要版本升級和使用 MySQL 只讀副本升級適用於 MySQL 的 Amazon RDS 資料庫的最佳實踐。
結論
Amazon RDS 對 MySQL 5.7 的延伸支援使企業能夠在規劃未來升級時靈活地維護安全可靠的資料庫環境。這種方法對於解決應用程式依賴關係和大型佇列需求特別有益,在這些需求中,遷移到 MySQL 8.0 可能涉及複雜性和後勤挑戰。在 Amazon Aurora 或 Amazon RDS 上升級到 MySQL 8.0 具有許多優勢,包括增強的性能、高級功能和長期支援。考慮到對其應用程式和佇列的影響,企業應仔細評估其優勢並規劃全面的遷移策略。無論是繼續使用 MySQL 5.7 還是升級到 MySQL 8.0,Amazon Aurora 和 Amazon RDS 都能為各種規模的企業提供安全且可擴展的雲資料庫環境。
有關後續步驟,請首先查看 Amazon Aurora 的時間線(請參閱什麼是 Amazon RDS 延伸支援部分中的前面圖像?)和 RDS 對 MySQL 5.7 的標準支持終止。驗證您是否可以在 Amazon Aurora 或 Amazon RDS 上的 MySQL 5.7 的標準支援日期結束之前遷移到 MySQL 8.0(請參閱上圖)。如果遷移未在相應的支持終止日期之前完成,請選擇從 2023 年 12 月開始加入 Amazon RDS 延伸支援,以避免自動升級您的集群或實例。
參考資料:
MySQL 版本更新與升級説明:
https://repost.aws/articles/ARWm1Gv0vJTIKCblhWhPXjWg/announcement-amazon-rds-for-mysql-5-7-will-reach-end-of-standard-support-on-february-29-2024
PostgreSQL 版本更新與升級説明:
https://repost.aws/articles/ARYMEcKNrtQWioxPdDtAot0g/announcement-amazon-rds-for-postgresql-11-will-reach-end-of-standard-support-on-february-29-2024