我们在选择阿里云或者腾讯云服务器的时候,是不是也有看到RDS这种云数据库产品。于是我们有网友提到网站可以实现静态分离到COS或者OSS,同样的数据库可以分离到RDS云数据库。这样的理论上是没有问题的,一般我们很多业务是没有用到云服务器,直接项目对接的云数据库,对于我们网站业务来说也是如此。我们可以将静态文件分离对象存储,数据库用云数据库,这样云服务器就可以降低负载只跑网站的内核程序。

那我们需要提到一个问题,这种阿里云RDS数据库和我们自建的数据库哪个好呢?比如我们可以用单独的云服务器搭建数据库用于远程云数据库功能,两者有没有多少区别。

阿里云RDS数据库和云服务器自建数据库哪个好?两者对比和选择建议

直达链接 - 阿里云 RDS数据库

我们可以这么理解,RDS数据库是基于服务商给我们单独搭建的数据库。在和我们自己用云服务器搭建独立数据库分离还是有很大的区别的。比如在安全备份、数据处理速度效率,故障切换,监控报警比我们自建的好。

1、阿里云RDS与自建数据库成本对比

| 费用 | 云数据库RDS | ECS自建数据库 | 自购服务器搭建数据库 |
|---|---|---|---|
| 硬件费用和备品配件费用 | RDS实例的费用。例如,2 CPU、4 GB内存、存储空间 100 GB(IOPS能力可达到6800)的实例费用是8000元/年。 | 至少需要2台ECS实例作为主备实例。2台2 CPU、4 GB内存、存储空间 100 GB(IOPS能力可达到6800)的ECS实例费用是6800元/年。 | - 至少需要2台数据库服务器。每台IOPS能力达到6800的服务器费用大约是8000元。
- 1台用于连接前端Web服务器的内网交换机(便宜的1U非网管交换机为1000元左右)。
- 后期硬件损坏和更换至少还要消耗30%费用。
- 硬件花费:(8000 × 2 + 1000)× 130% = 22100元。
每年费用:22100元/3 = 7366元(硬件按照3年折旧计算)。 |
| 机房托管费用 | 服务商负责,无需付费。 | 服务商负责,无需付费。 | 1U机柜空间托管费用为3000元/年,共有2台1U服务器和1台1U内网交换机需要计费,机房托管费用:3000 × 3 = 9000元。 |
| 带宽费用 | - 同一地域内,ECS和RDS可以通过内网互通,且不收取费用。
- 若在不同地域,ECS和RDS可以通过外网互通,不收取外网流量费用。 | - 同一地域内,ECS实例之间可以通过内网互通,不收取费用。
- 若在不同地域,ECS实例之间可以通过外网互通,需收取外网流量费用。 | 只用于内网,不产生公网费用。 |
| 数据库运维工程师费用 | 数据库维护由服务商负责,无人员成本。 | 1个初级DBA工程师月薪至少5000/月,假设当前项目占用该工程师30%的工作量,则人员成本为5000 × 12× 30% = 18000元。 | 1个初级DBA工程师月薪至少5000/月,假设当前项目占用该工程师30%的工作量,则人员成本为5000 × 12× 30% = 18000元。 |
| 每年总费用 | 8000元/年 | 24800元/年 | 34366元/年 |

2、自建数据库和RDS数据库优势对比

| 对比项 | RDS MySQL | ECS自建 | 自购服务器搭建数据库 |
|---|---|---|---|
| 性价比 | - 弹性资源。
- AliSQL深度定制的独立MySQL分支,提供了类似于MySQL企业版的诸多功能,提升用户使用感受。
- 最多2倍存储空间大小的免费备份空间。
- 公网流量免费。
- 免费使用自带的域名。
- 更新速度快,紧跟MySQL最新版本。 | - 弹性资源。
- 开源版无性能优化。
- 备份空间独立收费。
- 公网流量收费。 | - 一次投入的沉没成本大。
- 开源版无性能优化。
- 需要独立准备备份资源,成本极高。
- 公网流量收费,域名费用高。 |
| 可用性 | - 基础版约15分钟即可完成故障转移。
- 高可用版和集群版提供自研高可用系统,实现30秒内故障恢复。
- 只读实例自动实现负载均衡。
- 读写分离使用方便。
- 未来会推出分析节点,满足分析型场景需求。 | - 基础版约30分钟完成故障转移。
- 需要单独购买高可用系统。
- 需要单独实现或者购买负载均衡服务。
- 分析型场景需要与分析型数据库结合,搭建难度大、成本高。 | - 单机实例,少则两小时,多则等待配货数周。
- 需要单独购买高可用系统。
- 需要单独实现或者购买负载均衡设备。
- 分析型场景需要与分析型数据库结合,搭建难度大、成本高。 |
| 可靠性 | - 数据可靠性高,自动主备复制、数据备份、日志备份等。
- MySQL 5.7三节点企业版与MySQL 8.0三节点企业版,实现RPO(Recovery Point Objective)=0,数据无丢失;RTO(Recovery Time Objective) 通常情况在 1分钟左右。 | - 在好的架构下才能实现高可靠性。
- 实现RPO=0的成本极高,需要单独购买研发服务。 | - 数据可靠性一般,取决于单块磁盘的损害概率。
- 实现RPO=0的成本极高,需要单独购买研发服务。 |
| 易用性 | - 自动化备份恢复系统,支持按时间点恢复、单库备份恢复等,流式备份对实例性能影响小。
- 自动化监控告警系统,支持秒级监控,覆盖实例和数据库所有性能指标,支持短信、邮箱、旺旺、钉钉等通道,且根据消费有大额度的免费短信数量。
- 支持异地容灾。
- 支持一键版本升级。 | - 无自动备份系统,流式备份能力需要单独实现,实现按时间点恢复功能成本高。
- 需要单独购买监控系统,在云监控中配置告警系统。
- 技术实现难度极大。
- 版本升级成本高。 | - 无自动备份系统,流式备份能力需要单独实现,实现按时间点恢复功能成本高。
- 需要单独购买或配置监控系统,通道较少,成本较高。
- 异地数据中心成本极高,技术实现难度也大,很难实现异地容灾。
- 版本升级成本高。 |
| 性能 | - MySQL的本地SSD盘实例性能极佳。
- MySQL的ESSD性能较SSD提升显著。
- 增加只读实例之后性能强劲且负载均衡。
- CloudDBA提供高级优化能力。
- SQL洞察满足大部分监控及性能优化数据库场景。 | - ECS本地盘意味着降低数据可靠性,采用云盘需要规划架构,成本支出较大。
- 基于ESSD的ECS自建MySQL性能低于基于ESSD的RDS MySQL性能。
- 实现集群版的难度较高,咨询成本较高,维护成本极高。
- 依赖资深DBA,支出大,受制于人。 | - 比云计算硬件更新速度慢,性能一般都会低于云数据库。
- 难以实现计算和存储分离,若使用高端存储实现计算和存储分离,动辄需要数千万支出。
- 实现集群版的难度较高,咨询成本较高,维护成本极高。
- 依赖资深DBA,支出大,受制于人。 |
| 安全 | - 事前防护:白名单、安全组、专有网络隔离。
- 事中保护:连接链路加密、数据落盘加密(BYOK覆盖多种存储介质)。
- 事后审计:SQL洞察、历史事件。 | - 事前防护:白名单、安全组、专有网络隔离。
- 事中保护:需要单独实现连接链路加密和数据落盘加密,BYOK密钥轮转难度大,咨询成本较高。
- 事后审计:审计困难,需要单独保存SQL日志。 | - 事前防护:白名单和专有网络隔离的咨询成本较高。
- 事中保护:需要单独实现连接链路加密和数据落盘加密,BYOK密钥轮转难度大,咨询成本较高。
- 事后审计:审计困难,需要单独保存SQL日志。 |

以上2个表格对比数据来自阿里云官方文档。

我们也不是说必须选择RDS数据库,如果我们业务比较小的话,比如我们网站业务可以数据和程序都在一台服务器。如果我们技术能力部署能比比较强,也是可以自建数据库的。如果我们考虑到效率和易用性且确实需要用到云数据库,当然是可以选择阿里云RDS或者其他云数据库。