MySQL在上个月正式EOL,意味着官方不会再发布新版本去修复Bug或者安全漏洞。一般来说,云厂商对老版本支持要更就一些,那么一起来看看各个云厂商对5.7的支持情况。概述:
AWS有Aurora MySQL 5.7(即Aurora 2.x系列)、RDS MySQL 5.7两个版本。在Oracle MySQL官方到达EOL后,AWS额外提供了半年(Aurora约一年)的免费标准支持,以及三年的付费支持。即,AWS RDS将免费支持5.7到2024年02月底,Aurora到2024年11月底;另外,还将提供三年的付费支持,约到2027年。是的,要收费的(参考)。这段时间,AWS将继续提供安全相关的Bug修复、以及重要的功能Bug修复。
这个收费策略应该是开了云厂商对于旧版本数据库支持的先河。维护老的版本,需要额外的技术人员投入,维护一个过期的版本的投入从长时间来看,是低效的,所以,用户是需要为这部分服务付费的。
收费方式是按照vCPU * Hour
或 ACU * Hour
计费,不同的区域会有不同,不同的时间也会不同,离官方EOL时间越长,费用会越贵。不过,在官方版本到达EOL之后,AWS预留了4个月~一年的免费时间,让用户安排升级。以RDS MySQL 5.7为例,自2024年2月底之后,以新加坡地区为例,前两年付费扩展支持价格为 $0.12/(vCPU * Hour)
,第三年的费用为$0.24/(vCPU * Hour)
。以一个4c16g(db.m5.xlarge)
的实例计算,一个月费扩展支持费用约为$345
。而该实例本身的价格约为(两节点高可用):$677 = 0.47*24*30*2
。所以,AWS的策略是,价格摆在这里了,升不升级,由用户自己定夺。
此外,AWS RDS使用5.7版本的用户,在过了免费扩展支持阶段后,要么选择付费扩展支持,否则AWS将会“自动”(应该理解为“强制”)将实例升级到最新的RDS MySQL 8.0。(If you don’t opt in to RDS Extended Support for Amazon Aurora 2 or Amazon RDS for MySQL 5.7 before the RDS EoS date, your clusters or instances will automatically be upgraded to the latest supported minor release of Aurora MySQL 3 or RDS for MySQL 8.0.)
这个政策是很有挑战的,也很强硬。不过,也算是给行业树立了标杆,后续观察一下实施情况吧。毕竟,强制升级5.7到8.0,如果应用层不做适配的话,很容易会导致应用失败。如果是核心应用的话,几乎一定会遇到功能和性能问题。但另一面,对于云厂商来说,如果一直在线上留着一些无人维护的MySQL 5.7挑战也很大,三年五年还好,如果是八年、十年的话,随着OS、软件环境和硬件环境的升级,原来的5.7版本可能都无法顺利安装,那么当这些实例出现故障或失败,处理起来就会很复杂,会给系统的可维护性带来非常大的挑战。
AWS RDS的策略,简单概括:对于老版本,当前要么升级,要么付费;最终则是要么主动升级、要么被动强制升级。
目前,还没有看到阿里云RDS有正式的公告说明对5.7的支持。不过,RDS 5.6实例在之前,是宣称在官方EOL的基础上继续维护三年,到延长三年至2024年02月。由于5.7实例体量巨大,后续维护的时间可能会更长。
Azure:主要跟随社区版本的支持政策,并没有更多的详细说明。(“Each major version of MySQL is supported by Azure Database for MySQL from the date Azure begins supporting the version until the version is retired by the MySQL community, as provided in the versioning policy.”)
GCP:如果不再提供支持的时候,会提前12个月向用户发送通知,也没有更多说明了(参考)。
虽然,似乎全网都在催着大家升级,不过因为8.0改动比较大,并且到最近才算是真正稳定下来。所以,对于生产环境的核心数据库升级,性能、功能都可能会有问题,还是需要经过较为充分的验证,再做升级。