按照阿里云官方文档的定义,阿里云RDS是:
阿里云关系型数据库(Relational Database Service,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)和MariaDB TX引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。
阿里云上的数据库类的服务有很多,并不限于阿里云RDS提供的这些,例如:
- PolarDB、阿里云自研的数据库引擎,主要面向在线事务处理场景(OLTP),对比RDS的区别主要是采取了共享存储的架构,计算集群和存储资源均可分别扩展,最大支持16个节点组成集群,每个节点最大88个vCPU,存储空间最高支持到100TB。目前提供MySQL编程接口的版本,支持兼容Oracle编程接口的版本正在公测。
- 分析型数据库ADS、主要面向分析型应用场景(OLAP),主要用于批量导入数据到ADS进行快速查询分析。目前提供MySQL和PostgresSQL版本。
- HybridDB 、混合型数据库,同时适配在线事务处理(OLTP)和在线数据分析(OLAP)应用场景,可根据需要选择MySQL和PostgresSQL版本。
- 其他、另外还有MongoDB、Redis、Memcache、HBASE、表格存储、时序数据库、图数据库等。
说这些是为了要强调的是我们这次讨论的重点仅限于RDS,不包括上述这些数据库服务。
RDS提供的数据库引擎和版本如下图所示:
观察一下不难发现,RDS提供的这些数据库都可以直接部署在ECS上,再对比一下购买成本就会看到RDS相同规格的购买成本要比ECS高了很多,到底是什么让RDS有底气卖的比ECS贵呢,RDS值得买么?
我的观点是RDS值不值得买,要看你有多需要这些特性:
- 高可用、假如您的业务无法容忍计划外的停机,在云上搭建和运维数据库高可用集群需要管理员具备独孤九剑这样的本领。
- 自带备份、数据库圈里有一句话:DBA失去工作和得到工作通常都和备份有关。这是因为管理员失去工作通常都是因为把备份搞砸了,获得一份新工作很可能就是因为前一个管理员因为无法恢复数据库被开除了。
- 在线扩容、假如您的业务增长较快,ECS服务器上运行的数据库的每次扩容都会让数据库管理员有生无可恋的感觉。
- 主机安全、假如您是自己在ECS上搭建数据库服务,一旦ECS服务器的操作系统因为漏洞、弱口令或者什么其他原因被攻破,上面运行的数据库会如何?赶紧去换比特币吧!
- 性能优化、到底怎么优化才能让数据库的性能更好毫无疑问是一项学问,在面对服务器、存储、网络、操作系统、数据库参数等等方方面面的细节的时候,您还对自己的优化技能有多大的自信?
- 诊断工具、在遇到数据库性能问题时,好的诊断工具可以让管理员快速直观的定位和解决问题。老板和同事们通常只看结果不问过程,他们才不管你输入命令的手速和对数据库诊断命令的掌握程度。RDS配套的诊断工具能够更清晰直观的看到CPU、IO使用率、慢SQL、热点表、锁信息等这些数据库运行状态信息而不用东拼西凑的运行命令来收集这些信息。
RDS到底值不值得买?你自己看。