24-RDS只读副本-轻松实现弹性扩展

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们今天的视频课程内容为使用RDS只读副本-轻松实现弹性扩展。

我们开始今天的课程内容。

通过银行窗口理解单一数据库场景

首先,我们拿银行系统来举个例子,假设我们需要办理银行业务,进入银行营业厅后,可以看到银行设立了很多办理业务窗口,有办理个人业务的窗口,有办理对公业务的窗口,以及购买理财产品的窗口等等,不同的窗口负责不同的银行业务,将客户办理不同的业务分散到不同的窗口来办理。

如果只设置一个窗口负责银行的所有业务,大家都去这个窗口办理业务,当客户较多时那么一定会造成窗口排队的情况,降低了银行窗口的处理效率,导致增加办理业务所需等待的时间,这也是为什么银行要为不同的业务设置不同的办理窗口的原因之一。

同样的,如果您使用一个单独的数据库负责支撑组织所有类型的活动,那么当业务负载较多时,可能就会导致影响这个数据库整体的处理效率。假设您只配置一个数据库负责支撑所有读取和写入的操作,当业务量突发增多时,这个单一的数据库可能会面临大量的读取和写入操作,数据库就可能面临着操作性能下降,导致业务受到影响。

为了缓解这种情况,很多组织都会配置扩展更多的数据库,然后分离数据库的读取和写入操作,不在使用单一的数据库同时处理所有的读取和写入操作。

数据库只读副本

那么如何扩展数据库以分离数据库的读取和写入操作呢,可以通过创建数据库的只读副本。
如果您的数据中心服务器或者使用EC2安装MYSQL等数据库,可以自行配置创建只读副本,但是如果数据库使用的是AWS RDS服务,创建只读副本会更加的简单。

Amazon RDS 使用 MariaDB、MySQL、Oracle 和 PostgreSQL 数据库引擎的内置复制功能,可以从源数据库实例创建一个特殊类型的数据库实例,称为只读副本,使用源数据库实例快照创建第二个数据库实例。然后在源数据库实例数据发生更改时,使用引擎的本机异步复制功能更新只读副本。

当为数据库创建了只读副本后,您可以将您组织的应用程序发出的所有写入请求指向主数据库,主数据库发生更新时,主数据库会异步复制更新至只读副本,您可以将所有读取操作路由到只读副本,以减轻主数据库实例上的负载。

这种架构尤其是对于那些需要进行大量读取操作的数据库负载的场景,分离场景的读取和写入操作,只将写入操作指向主数据库,将所有读取操作通过只读副本进行灵活地进行扩展,突破单个数据库实例的负载限制,通过创建只读副本增加总读取吞吐量。

Amazon RDS 只读副本 可增强数据库实例的性能和持久性。此功能可轻松实现弹性扩展,突破单个数据库实例的容量限制,以处理高读取量的数据库工作负载。您可以为给定的源数据库实例创建一个或多个只读副本,利用多份数据副本满足大量应用程序读取流量需求,以此增加总读取吞吐量。

创建RDS只读副本

好的我们继续,创建RDS只读副本非常的简单,通过AWS管理控制台,只需要点击几次鼠标即可完成只读副本的创建。我们接下来的内容就实操演示创建RDS只读副本。

切换到RDS管理控制台,可以看到当前我们有一个数据库实例,数据库标识符为iloveawscn,这个数据库实例目前是在东京区域。
目前我们只有这一个数据库实例,我们接下来要做的,就是模拟前面的场景,基于这个源数据库创建一个只读副本,通过创建只读副本来增加总读取吞吐量。

选择这个数据库实例,操作-然后创建只读副本。

首先为只读副本选择实例的规格,AWS建议为只读副本使用与源数据库实例相同的实例类型和大小,这里一定要注意。


很多组织在选择只读副本实例规格时,都将只读副本的规格大小配置成低于主数据库的规格,比如为主数据库选择16G内存,但是为只读副本只选择了8G内存,不建议这么做,因为在某些场景下这么做可能会影响数据库的性能。如您为主数据库选择了t2.large规格,您也至少应为只读副本选择t2.large规格。

然而有一种情况,如果您组织的应用场景是需要承载大量的数据库读取操作, 如果您觉得提高只读副本的实例类型和大小可以很好的应对此场景,那么在这种场景下,您也可以为只读副本选择比主数据库更高类型的实例。但是不建议将只读副本的规格大小配置成低于主数据库的规格。

在这个下拉框选择实例的规格,我们这里就选择t2.micro ,和我们的主数据库的规格大小一致。

我们继续,另外一个需要关注的配置项为目标区域,也就是要在哪个区域启动只读副本。通过只读副本不仅能够实现数据库的弹性扩展,且只读副本也可作为灾难恢复策略的一部分,您可以跨 AWS 区域配置只读副本。

目前我们的主数据库在东京区域,后面我们将此只读副本配置到不同的区域,比如首尔区域,如果之后主数据库所在的东京区域出现故障,那么我们仍然有只读副本中的数据在首尔区域,当出现这种情况时,是可以将只读副本提升为独立的数据库实例使用的,我们后面课程会讲到。所以只读副本不仅能够实现数据库的弹性扩展,还可以帮助我们用于灾后恢复。

我们现在选择只读副本的目标区域,可以和主数据库选择相同区域或不同区域,我们的主数据库在东京,我们就将只读副本启动到首尔,选择首尔。需要注意一点是,如果选择了与主数据库不同的区域,不同区域会增加主数据库和只读副本之间复制数据的延迟。

我们继续,数据库实例标示符,是确定数据库实例的唯一键,我们为只读副本输入iloveawscn-rp,其他的配置项因为是测试,我们保持默认配置,然后创建只读副本。

可以看到提示已启动创建只读副本的过程。

如果我们切换到首尔区域,应该可以看到只读副本正在创建。现在切换到首尔区域,可以看到我们刚刚创建的iloveawscn-rp只读副本,状态为正在创建。完成创建的时间取决于您的主数据库的大小,一般可能会持续几个小时。因为我们创建只读副本的主数据库也是刚刚创建的,没有什么数据,估计完成创建只读副本需要10-15分钟左右。

我会等待只读副本创建完成,我们今天的视频课程就先到这里,下节课在继续今天的内容,介绍RDS只读副本的重要知识点。

希望今天的课程会给大家带来帮助。

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

  • AWS爱好者的网址是www.iloveaws.cn。
  • 可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章
  • 加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识
  • 加入【AWS知识星球】持续学习。

我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

2020年6月15日

0 responses on "24-RDS只读副本-轻松实现弹性扩展"

Leave a Message

error: Content is protected !!