云厂商 RDS MySQL 怎么选
1. 摘要
为了让大家更好的了解各云厂商在RDS MySQL数据库功能上的差异,也为给准备上云的同学做个参考,本文将对阿里云、腾讯云、华为云和AWS 的 RDS MySQL数据库进行对比说明。
从一个数据库运维者的角度来看,如果要上云,需要关注的数据库指标有:基础资源、架构、功能、安全、性能、价格等各方面,本文就针对这些(除性能外)展开说明。
说明:本文有一定的时效性,内容基于各云厂商四月份的数据。价格、功能变化比较快,可能看到文章的时候,和写文章的时候某些结论已经有所不同。
具体的信息可以看:云厂商 RDS MySQL 怎么选,或则关注公众号:
2. 对比结果
从本文中的「对比说明」里的各个结论中能得到如下结果(只针对功能,暂不包含性能指标):

说明:5星制,按照本文后面的对比说明进行评分,规则比较简单:最好5星,其次4星,依次评分。
结论:
在国内,从服务的稳定性、可用性、监控、安全、备份恢复等功能的丰富度来选择的话,推荐阿里云;从服务的性价比,并在各个方面都有比较好的支持的情况下,推荐腾讯云。
在国外,从区域的分布数量,并在各个方面都有很好支持的情况下,如果不考虑价格,推荐AWS(大部分情况会高出国内厂商30%左右);在国内云厂商中,阿里云和腾讯云在海外的区域都支持的不错,阿里云支持的实例规格最全,腾讯云性价比最好,如果在国内厂商中选择(海外业务),阿里云和腾讯云都可以考虑,根据实际情况选择。
3. 对比说明
以一个指标一个结论的方式进行说明,最后汇总各个指标的结论做出总结和评分。
对比对象:阿里云、腾讯云、华为云、AWS
对比指标:从基础资源、架构、规格、安全、功能、计费、可用性等方面进行对比说明,来了解各云厂商在 RDS MySQL上的差异。
4. 详细对比
4.1 基础资源
概念
地区(Regions):云服务器所在数据中心的地理位置,如华东1(杭州)、华北2(北京)。
可用区(Availability Zones):同一地区下电力和网络相互独立的区域,如杭州可用区H、杭州可用区G。
地区 & 可用区

图中所示的是各云厂商在支持RDS MySQL服务的地区和可用区数量,具体看下面表格说明:
地区:支持 RDS MySQL 服务的地区

可用区:支持 RDS MySQL 服务的可用区数

4.1 结论
在国内,地区数方面:阿里云最多,其次是腾讯云和华为云。阿里云是华为云的2倍,是腾讯云的1.5倍;可用区数方面:腾讯云最多,其次是阿里云和华为云,腾讯云是阿里云的1.08倍,是华为云的1.25倍。
在国外,地区和可用区数:AWS最多,华为云最少,其次是阿里云和腾讯云。华为云在欧洲目前没有自营的数据中心,如果有海外业务,需要考虑云厂商在海外地区的分布情况。
4.2 实例属性
架构&规格

4.2 结论
在架构上,阿里云、腾讯云、AWS都支持三节点(1主2备),华为云不支持;其中AWS三节点中的备节点,可以提供读服务,具体可以看 三节点形态,哪些业务场景应该选择 文章的说明。
在计算规格和存储空间上,AWS支持的最高,其存储空间可以扩展到64T,其次是阿里云,存储空间可以扩展到32T,华为云不管是云盘还是本地盘,最高扩展到4T。
RDS MySQL 在本地盘能达到最好的性能,如果对本地盘空间有比较大的要求,则可以选择本地盘更大的厂商。
4.3 计费
计费方式


额外计费项:已购买包年包月的实例,还会产生费用,因为还有额外的一些付费项

4.3 结论
计费方式上,各云厂商的计费方式都是按需付费和预付费,AWS在预付费(不支持包月,支持包年,时间为1年或3年)的基础上还设置了3种模式:无需预付费用、预付部分费用、预付全费,来获得不同程度的折扣【折扣只包含实例规格,不包含存储和IOPS】。另外,AWS还根据预分配IOPS进行来收费。
额外计费上
备份空间:在国内,阿里云价格最高;在香港和国外,华为云价格最高;
性能监控:阿里云比华为云高4.2%,华为云和AWS可以支持到最小1s的粒度,其他的最小粒度为5s,腾讯云目前免费;
SQL审计:腾讯云只收存储费用,阿里云和华为云收实例费用和存储费用,存储上腾讯云价格最高,比阿里云高25%,比华为云高39%;
代理:阿里云的规格不能调整,目前仅支持2C4G规格,并且腾讯云在数据库代理方面处于免费阶段,AWS价格最高;
4.4 安全
网络、权鉴、加密、监控、容灾方面


4.4 结论
各个云厂商在安全方面的支持度差距不大,腾讯云目前还没有支持SSL加密。
4.5 功能
监控、告警

日志&审计

备份&恢复

数据库代理

4.5 结论
在监控和告警上,各云厂商支持的类似;AWS可以直接监控MySQL的进程信息,如虚拟内存、物理内存、CPU使用; 监控粒度上,华为云和AWS可以支持1s/次的粒度,其他厂商为5s/次。
在日志和审计上,各云厂商都支持SQL审计/洞察,腾讯云分同步和异步审计,AWS的审计基于MariaDB的审计插件;阿里云的审计日志对性能影响极低(具体没说明),腾讯云异步影响3%、同步影响6%左右,华为云影响10%左右。
在备份和恢复上,各云厂商都支持了全量、增量的备份和基于时间点的恢复功能(华为云不对逻辑逻辑备份进行支持);阿里云还支持了对数据进行压缩归档和直接查询备份集的功能,以及提供了快速的应急恢复的能力,提供分钟级的RTO或RPO能力,可用于在线数据的即时恢复。
在数据库代理上,国内各云厂商都支持了自动读写分离,只读节点提供读服务;其中阿里云的代理规格是固定的,其他的可以选择不同的规格;AWS的代理在MySQL上没有支持自动读写分离,提供了只读和读写IP。腾讯云目前没有对SSL加密进行支持。
4.6 服务等级
可用性


4.6 结论
阿里云的独享实例类型在SLA上最高,保证了至少99.99%,其他云厂商都是99.95%。
4.7 示例费用
为了更好、更直观的了解实例消费的情况,在指定同一个地域的前提下,对常用的MySQL规格进行比较说明。
实例规格


实例费用
国内:区域上海,针对独享型、本地SSD规格进行比较

海外:区域新加坡,腾讯云在海外节点上只支持通用型和本地SSD,华为云只支持云SSD,所以针对通用型、本地、云SSD规格进行比较

4.7 结论:
国内(上海)中,以上2个规格的实例,在包年包月上价格上差距不大,阿里云和腾讯云差距在2%~5%,和华为云差距在1%~4%;腾讯云在按量付费上有三阶梯计费规则;
国外(新加坡)中,以上2个规格的实例,阿里云价格最高,但在规格上支持的最多,腾讯云不支持独享型规格,华为云不支持本地SSD规格。同规格下阿里云比腾讯云高20%~30%,比华为云高5~10%。
和AWS(通用型SSD gp2)比(新加坡地区)
按需付费模式的按时:AWS比国内云厂商本地盘规格的实例价格低25%~30%,比云盘规格的实例价格高20%~30%。
按需付费模式的按月:因为AWS没有包月模式,所以按需的月价比「阿里云-本地规格」高18%左右,比「腾讯云本地盘规格」高56%左右;比「阿里云云盘规格」高84%左右,比「华为云云盘规格」高97%左右。
预付费模式(预付1年全额)
AWS的费用比阿里云(本地盘规格)低10% ~ 15%,比腾讯云(本地盘规格)高17%~21%。
AWS的费用比阿里云的(云盘规格)高30%~35%;比华为云(云盘规格)高40%~47%。
对比小结:
国内云厂商中,在常用的规格下(4c16g、8c32g),阿里云比腾讯云高2%~5%,比华为云高1%~4%。
海外(新加坡)区域,AWS在预留付费1年(全额)下
国内厂商中,同规格下阿里云比腾讯云高20%~30%,比华为云高5~10%。
云盘规格下,AWS价格比阿里云高出20% ~ 35% 。
本地盘规格下,阿里云的实例价格高于AWS(新加坡区域,有些区域不是,但该规格下和AWS价格差距不大,具体看购买页价格),但总比腾讯云和华为云高。
5. 总结
通过各云厂商的对比,得出本文开头部分「对比结果」中的结果和评分。希望通过阅读本文,对大家在选择云厂商的RDS MySQL产品时有帮助。
参考文档
https://help.aliyun.com/document_detail/26092.html
https://cloud.tencent.com/document/product/236/5146
https://support.huaweicloud.com/rds/index.html#tabpane_06314173
https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/Welcome.html
云厂商 RDS MySQL 怎么选的更多相关文章
- 云数据库RDS MySQL 版
阿里云关系型数据库(Relational Database Service,简称RDS)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL. ...
- 实测:云RDS MySQL性能是自建的1.6倍
1. 摘要 基于之前写的「云厂商 RDS MySQL 怎么选」的文章,为了进一步了解各云厂商在RDS MySQL数据库性能上的差异,本文将对自建MySQL.阿里云.腾讯云.华为云和AWS 的 RDS ...
- 关于阿里云 RDS mysql索引优化的一点经验
2019年9月5日10:02:34 本地调试 git https://github.com/barryvdh/laravel-debugbar composer require barryvdh/la ...
- 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- 云数据库 RDS 版怎么创建数据库和账号MySQL 5.7版
若要使用云数据库RDS,您需要在实例中创建数据库和账号.对于MySQL 5.7版本的实例,您需要通过RDS控制台创建一个初始账号,然后可以通过数据管理(DMS)控制台创建和管理数据库.本文将主要介绍在 ...
- 阿里云rds mysql数据库数据恢复到ecs中
背景:aliyun上的rds数据库快满了,于是删除了某个备份的表后面大boss说是有用的表,需要恢复回来,阿里云有7天内的物理全量备份(通过percona-xtrabackup备份的)第一时间应该延长 ...
- 确保数据零丢失!阿里云数据库RDS for MySQL 三节点企业版正式商用
2019年10月23号,阿里云数据库RDS for MySQL 三节点企业版正式商用,RDS for MySQL三节点企业版基于Paxos协议实现数据库复制,每个事务日志确保至少同步两个节点,实现任意 ...
- 记阿里云 RDS MySQL 的一个大坑
花了一个下午的时间,终于把一个阿里云 RDS MySQL 的一个大坑填上了,解决方法令人匪夷所思!绝对会让各位看官感到大吃一惊,阿里云 RDS MySQL 居然有这样 xx 的大坑! 问题 最近应业务 ...
- 云上RDS架构
概述 越来越多的企业选择上云,最基础的云服务就是IaaS(Infrastructure as a Service)服务,直观理解就是虚拟主机,用户不用再自建机房,自己购买服务器,而是直接向云厂商购买虚 ...
随机推荐
- js技术之如何在JS中获取input的值
在JavaScript中获取input元素value的值: 方法一:var variations_number = $("#input的id名").val(); 1 <!DO ...
- Numpy常用random随机函数汇总
Numpy常用random下的随机函数汇总 官方文档地址:https://docs.scipy.org/doc/numpy-1.14.0/reference/routines.random.html ...
- ES6-11学习笔记--深拷贝与浅拷贝
Object.assign,只是进行了浅拷贝,并没有进行深拷贝. 而且会在复杂结构当中会丢失属性,如下代码: let target = { a: { b: { c: 3 }, e: 4, f: 5, ...
- java中checked异常和unchecked异常区别?
马克-to-win:checked和unchecked异常区别:结论就是:1)RuntimeException和他的子类都是unchecked异 常.其他的都是checked异常.马克-to-win: ...
- jdbc连接MySQL数据库+简单实例(普通JDBC方法实现和连接池方式实现)
jdbc连接数据库 总结内容 1. 基本概念 jdbc的概念 2. 数据库连接 数据库的连接 DAO层思想 重构设计 3. 事务 概念 事务的ACID属性 事务的操作 4. 连接池 为什么要使用连接池 ...
- 前端如何通过js判断浏览器的类型(忽略版本)web html css javascript
每个页面浏览器会实例出一个window对象,在window对象下有一个属性navigator,navigator本身是一个对象,navigator对象上有一个属性userAgent里面包含了当前浏览器 ...
- Vulnhub 之 Earth
靶机地址:https://www.vulnhub.com/entry/the-planets-earth,755/ Kali IP:192.168.56.104 下载OVA文件后,直接通过Virtua ...
- 【深度学习 论文篇 01-1 】AlexNet论文翻译
前言:本文是我对照原论文逐字逐句翻译而来,英文水平有限,不影响阅读即可.翻译论文的确能很大程度加深我们对文章的理解,但太过耗时,不建议采用.我翻译的另一个目的就是想重拾英文,所以就硬着头皮啃了.本文只 ...
- XXE漏洞——介绍及利用
什么是xxe XML外部实体注入,简称XXE漏洞.XML文档结构包括XML声明,DTD文档类型定义,文档元素. XML示例 <?xml version="1.0"?>X ...
- Spring-aop注解开发(切点表达式的抽取)
接上一篇aop注解快速开发 @Component @Aspect //标注当前aspect是切面类 public class MyAspect { @Before("Pointcut()&q ...