前边几篇文章都没涉及很多技术。这篇文章计划介绍下 Amazon 的 RDS 。如果你是云服务研发人员或者产品人员,可以关注一下 Amazon RDS 的设计理念。如果你是普通研发人员或者互联网创业公司的 CTO 可以关注一下 RDS 的功能和优缺点。如果说亚马逊云服务里哪个模块省心,莫过于 RDS 。这里主要说 MySQL 的 RDS 。估计 MySQL 是大部分公司或者团队的最佳选择,使用广泛,几乎成了创业公司标配。

监控系统

亚马逊提供了 RDS 数据库的重要指标的实时查看功能。包括了 CPU 使用率;连接数;磁盘可用空间;内存可用空间;读写 IOPS;Binlog 大小;读写吞吐量;网络吞吐量。支持在 Web 控制页面实时查询这些图表;并且支持同一组服务器的图表对比。

RDS 的监控建立在 AWS CloudWatch 基础之上;监控图表服务完全由 CloudWatch 提供。CloudWatch 是亚马逊云服务的统一监控组件,支持图表和报警接口。

这样,几乎不再需要借助其他工具对 RDS 数据库进行监控。当然,在某些情况下可以通过命令行链接数据库,进行 SHOW FULL PROCESSLIST 类似的操作。

参数配置系统

这是一个参数模板系统。AWS 的 RDS 提供一个称为 Parameter Groups 的系统进行 RDS MySQL 参数配置和模板管理。用户可以根据自己需要建立多个参数模板;在创建新 RDS 服务器的时候使用这些模板。可以在 AWS 模板基础上修改一些重要参数,比如:query_cache_size,max_allowed_packet,slow_query_log,long_query_time,max_connections,tmp_table_size,max_heap_table_size。另外如果有自己的其他组件需要用 RDS 的 BINLOG,还可以修改 binlog_format ROW 或者 MIXED 。MySQL 的其他所有参数都可以进行配置。

需要注意的是某些参数可以在运行时修改,但某些参数在 RDS 运行情况下修改的话,需要 reboot 服务器。假如手动创建 RDS 实例的话一定记得选择自己创建的 PG 。

备份系统

备份系统包括三部分:定期创建镜像;定期 DUMP 数据库;以及 RDS 的时间点回滚日志。

数据库镜像可以随时用来恢复整个数据库实例,并且速度很快。定期创建镜像需要通过 AWS 命令或者接口实现;也可以通过界面操作完成。镜像的创建完全不影响数据库的服务和使用。

DUMP 数据库和其他地方一样,连接数据库并且用命令 DUMP。

回滚日志:RDS 提供一个功能回滚到之前一段时间范围内的时间点。注意这个回滚非常耗时间,猜测其中包含了 RDS 自己维护的定期镜像恢复和相应时间段 BINLOG 的日志恢复。其中 BINLOG 的恢复非常耗时。

跨 IDC 高可用

跨区域高可用这是 RDS 最大的亮点。创建一个 RDS 实例,可以选择是否支持 Multi-AZ 即跨区域 IDC 的高可用。即使一个 IDC 不可用仍然不影响 RDS 服务。我们都知道跨 IDC 的任何系统都非常难以维护,AWS RDS 正解决了这个问题。但是同时,跨区域高可用会维护一个 Hot standby 服务器在另外一个机房,价格会翻倍,并且另外一个服务器不可提供服务。高可用不是完全可用,没错。假如一个 IDC 的 RDS 出现问题,会有一个 Failover 的过程,根据应用特点大约 1-2 分钟。期间最好情况下也需要 query cache 的预热的完成。

强制 Failover:由于跨 IDC 的网络延迟,也许你需要 RDS 和其他服务器工作在同一个或者 2 个 Region。假如 RDS Failover 到不是期望的区域,可以通过 reboot 来强制 Failover 到其他 Region。高可用 RDS 的区域基本在 2 个 Region 之间互相 Failover 切换。

安全体系

AWS 提供两种选择,一种是和 EC2 类似的安全组,另一种是 VPC 的安全模式。可以定义开放端口服务给哪些服务器。AWS Security Groups 是另一个庞大的体系。

数据回滚和恢复

数据回滚之前已经提到可以一键选择恢复到之前的一个时间点。另外可以通过镜像的方式进行恢复。或者用自己导出的 SQL 备份文件进行传统方式恢复。
可以选择备份时间窗口,选择在业务低峰期进行自动备份。

自动维护和更新

可以自定义每周的维护时间窗口,AWS 会在这个时间段内进行 PATCH 、安全升级等操作。选择自己的业务低峰期即可。另外假如有安全更新之类 AWS 会邮件预告,并且会现在在待执行列表中。

活动日志

大部分界面的手动操作和自动操作比如 reboot 都会显示在活动日志中,比如自动备份、强制 Failover 等等。

错误和慢查询日志

虽然不能进入运行 RDS 的服务器,但是也可以获取慢日志进行分析。 AWS 会每小时滚一个日志文件,这些文件可以在 AWS 下载或者实时查看。

型号选择

型号选择类似 EC2 的选择,可以根据 CPU、内存大小、网络带宽大小选择。另外可以选择是否 SSD 磁盘,以及磁盘 IOPS 的规格。

磁盘类型主要分普通磁盘和 SSD 。但是都可以选择 IOPS 的提升。这个可以根据需要选择,假如是读多,非交易系统,普通 IOPS 完全可以满足要求。

主从同步

创建主服务器的时候可以创建多个从服务器,这个跟传统的主从读写分离架构类似。区别是你不再需要手动操作主从同步,更加安全。主从延迟图表也可以从界面监控系统看到。

长期租用

亚马逊支持年付或者更长时间租用模式,价格往往只有一半。

亚马逊云平台大大降低了运维成本,并且不再需要人工进行复制的数据库优化。性能甚至比人工优化过的更好。但是 MySQL 数据库的原理未变,你假如是 DBA 之前的经验仍然可以帮你作出正确判断。

希望这些对你有用。如果觉得有用请收藏 RSS 或者扫码关注公众号 。

注册 Host1Plus 2.5 美元每月独立 IP 国内访问 30M 带宽 VPS

注册 DigitalOcean 256MB 内存, 20GB 硬盘 VPS

推荐这些相关文章

订阅这个博客:

关注我的微博:

关注我的推特: