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

我们在选择阿里云或者腾讯云服务器的时候,是不是也有看到RDS这种云数据库产品。于是我们有网友提到网站可以实现静态分离到COS或者OSS,同样的数据库可以分离到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或者其他云数据库。

投上你的一票

本文出处:老蒋部落 » 阿里云RDS数据库和云服务器自建数据库哪个好?两者对比和选择建议 | 欢迎分享( 公众号:老蒋朋友圈 )

公众号 「老蒋朋友圈」获取站长新知 / 加QQ群 【1012423279】获取商家优惠推送