两地三中心异地多活网络
一键部署
75
https://www.aliyun.com/solution/tech-solution/tltcamanidl
方案概览
对于中大型上云的企业客户,为了进一步提高其业务系统的可靠性,同时进一步利用云计算资源的弹性、便捷的优势,越来越多的客户选择以两地三中心多地域VPC互联来作为整体业务系统高可靠的设计,整体可靠性RTO可达分钟级。企业常有以下场景:
基于云上网络迅速构建异地多活内网互联,构建安全可靠的数据链路。
利用阿里云全球高品质传输网络,保障业务跨域互访及数据同步的高质量传输。
基于CEN-TR+DTS分钟级构建跨域VPC互联及数据库同步。
方案架构
方案提供的默认设置完成部署后在阿里云上搭建的网站运行环境如下图所示。实际部署时您可以根据资源规划修改部分设置,但最终形成的运行环境与下图相似。
本方案的技术架构包括以下基础设施和云服务:
2个专有网络VPC:分别在上海和北京地域创建两个PROD VPC,VPC为客户搭建可信的私有网络,为应用型负载均衡ALB、云服务器ECS、云数据库PolarDB MySQL等云资源形成云上私有网络。
4个弹性公网IP EIP:EIP用于互联网用户访问接入。
2个公网应用型负载均衡ALB:对外提供访问并将用户请求分配到不同云服务器ECS上的生产服务。
4台云服务器ECS:用于部署生产服务。
2个云数据库PolarDB MySQL集群:为生产服务提供数据服务。
1个云企业网实例CEN:用于管理整个云上私网网络。
2个转发路由器TR:用于连接网络实例VPC及跨地域连接。
1个数据传输服务DTS:用于同步异地PolarDB MySQL数据。
云解析DNS:将用户的请求解析到两个地域下的公网型ALB的EIP或DNS名称。
部署准备
10
开始部署前,请按以下指引完成账号申请、账号充值、RAM用户创建和授权。
准备账号
如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。
为节省成本,本方案基本使用按量付费资源,仅在使用云企业网的跨地域连接功能时,涉及预付费的带宽包。请确保账户余额大于等于440元。
完成本方案的部署及体验,预计产生费用不超过460元。
假设您选择最低规格资源,且资源运行时间不超过1小时。实际情况中可能部分实例无法购买需要根据实际情况调整资源规格,同时因您操作过程中实际使用的流量差异,会导致费用有所变化,请以控制台显示的实际报价以及最终账单为准,如下表格仅供参考。
创建用于方案部署的RAM用户。
创建1个RAM用户。具体操作,请参见创建RAM用户。
为RAM用户授予以下云服务的访问权限以完成方案部署。具体操作,请参见为RAM用户授权。
云服务
需要的权限
描述
云服务器ECS
AliyunECSFullAccess
管理云服务器ECS的权限
云企业网CEN
AliyunCENFullAccess
管理云企业网CEN的权限
云原生数据库PolarDB
AliyunPolarDBFullAccess
管理云数据库PolarDB的权限
专有网络VPC
AliyunVPCFullAccess
管理专有网络VPC的权限
负载均衡ALB
AliyunSLBFullAccess
管理负载均衡SLB的权限
弹性公网IP EIP
AliyunEIPFullAccess
管理弹性公网IP的权限
数据传输服务DTS
AliyunDTSFullAccess
管理数据传输服务DTS权限
云解析DNS
AliyunDNSFullAccess
管理云解析DNS的权限
资源编排ROS
AliyunROSFullAccess
管理资源编排服务ROS的权限
规划网络和资源
10
网络规划
请参考表格中的说明和方案默认示例值为每个规划项做详细规划并在实际部署时将默认示例值修改为您的实际规划。
规划项 | 数量 | 说明 |
地域 | 2 | 您的云服务部署的地域。选择地域的基本原则请参见地域和可用区。 |
专有网络VPC | 2 | 在部署过程中在上海和北京地域分别新建1个VPC作为本方案的专有网络。 |
交换机 | 4 | 本方案需要至少4台交换机,用来连接不同的云资源实例。 |
应用型负载均衡ALB | 2 | 本方案需要2台应用型负载均衡ALB实例,用于对网站的多台云服务器进行流量分发。它可以通过流量分发扩展应用系统的服务能力,通过消除单点故障提升应用系统的可用性。 |
弹性公网IP EIP | 4 | 创建应用型负载均衡ALB实例时,选择公网类型,自动为应用型负载均衡ALB实例创建2个弹性公网IP。 |
云企业网CEN | 1 | 本方案需要1个云企业网实例,用于管理整个云上私网网络。 |
转发路由器TR | 2 | 用于连接网络实例VPC及跨地域连接。 |
云解析DNS | 1 | 将用户的请求解析到两个地域下的公网型ALB的EIP或DNS名称。 |
规划云资源
请参考表格中的说明和方案默认示例值为每个规划项做详细规划并在实际部署时将默认示例值修改为您的实际规划。
规划项 | 数量 | 说明 |
ECS | 4 | 本方案需要4台ECS实例,用于同时部署博客网站服务。 |
PolarDB集群 | 2 | 本方案需要在上海和北京地域分别创建1个 PolarDB集群,用于存储生产业务数据。 |
DTS | 1 | 本方案需要开通DTS同步作业,用于实现上海和北京异地数据源之间的数据实时同步。 |
部署资源
40
规划好资源后,请按照以下步骤部署方案中的所有资源。
步骤一:一键部署资源
一键配置基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,旨在帮助开发者通过IaC(Infrastructure as Code)的方式体验资源的自动化配置。本方案中的一键部署脚本可完成除DTS以外的资源部署。
单击一键部署前往ROS控制台,系统自动跳转至创建资源栈页面,并默认进入配置模板参数配置向导页面。
资源栈名称可保持默认值。
在地域和可用区配置区域,根据业务部署规划配置资源部署地域和可用区。
本方案配置中:
资源部署地域1:选择华东2(上海),并选择可用区M和可用区N。
资源部署地域2:选择华北2(北京),并选择可用区H和可用区I。
在ECS实例配置区域,根据实际情况选择实例规格。
实际情况中可能部分实例无法购买,需要根据实际情况调整资源规格。
在ECS实例密码配置区域,配置ECS实例的登录密码。
在PolarDB配置区域,配置PolarDB账号名称和登录密码以及PolarDB规格。
单击创建开始创建资源。
可选:资源创建过程中,可开启右上角自动刷新开关,及时了解资源部署进度。
资源部署完成后,在该页面查看部署结果,资源栈信息的状态显示创建成功,则表示资源已成功完成部署。
步骤二:添加DTS云服务路由
您需要在上海和北京地域的转发路由器路由表中分别添加DTS云服务路由。
登录云企业网管理控制台。
在云企业网实例页面,找到目标云企业网实例,单击目标实例ID。
在
页签,找到上海地域的转发路由器实例,单击目标实例ID。在转发路由器实例详情页面,单击转发路由器路由表页签。
在页签左侧区域,单击目标路由表ID,在路由表详情页面的路由条目页签下,单击创建路由条目。
在添加路由条目对话框,配置DTS云服务路由,下一跳指向一个中转服务VPC的TR连接,然后单击确定。
DTS服务的IP地址,请参见迁移、同步或订阅本地数据库时需添加的IP白名单。
根据以上步骤,为北京地域的转发路由器路由表添加DTS云服务路由。
步骤三:配置DTS数据同步任务
完成ROS一键部署后,系统已创建以华东2(上海)为源库,以华北2(北京)为目标库的同步任务,该任务具体配置需要您进行手动操作。
在开始本任务前,请先为源数据库开启binlog。如何开启,请参见开启Binlog。
进入同步任务的列表页面。
登录DMS数据管理服务。
在顶部菜单栏中,单击集成与开发(DTS)。
在左侧导航栏,选择
。
在同步任务右侧,选择同步实例所属地域。本方案为华东2(上海)。
在同步任务列表中,找到目标同步任务,在操作列,单击配置任务,配置源库及目标库信息。
类别
配置
说明
无
任务名称
DTS会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
源库信息
选择已有的DMS数据库实例
您可以按实际需求,选择是否使用已有实例。
如使用已有实例,下方数据库信息将自动填入,您无需重复输入。
如不使用已有实例,您需要输入下方的数据库信息。
数据库类型
选择PolarDB for MySQL。
接入方式
选择云实例。
实例地区
选择源PolarDB MySQL版集群所属地域华东2(上海)。
PolarDB MySQL实例ID
选择源PolarDB MySQL版集群ID。
说明源和目标PolarDB MySQL版集群可以不同或相同,即您可以使用DTS实现两个PolarDB MySQL版集群间的数据迁移或同一PolarDB MySQL版集群内的数据迁移。
数据库账号
填入源PolarDB MySQL版集群的数据库账号,需具备待同步对象的读权限。
数据库密码
填入该数据库账号对应的密码。
目标库信息
选择已有的DMS数据库实例
您可以按实际需求,选择是否使用已有实例。
如使用已有实例,下方数据库信息将自动填入,您无需重复输入。
如不使用已有实例,您需要输入下方的数据库信息。
数据库类型
选择PolarDB for MySQL。
接入方式
选择云实例。
实例地区
选择目标PolarDB MySQL版集群所属地域。
PolarDB MySQL实例ID
选择目标PolarDB MySQL版集群ID。
数据库账号
填入目标PolarDB MySQL版集群的数据库账号(高权限账号)。
数据库密码
填入该数据库账号对应的密码。
配置完成后,单击页面下方的测试连接以进行下一步。
如果源或目标数据库是阿里云数据库实例(例如RDS MySQL、云数据库MongoDB版等),DTS会自动将对应地区DTS服务的IP地址添加到阿里云数据库实例的白名单中;如果源或目标数据库是ECS上的自建数据库,DTS会自动将对应地区DTS服务的IP地址添到ECS的安全规则中,您还需确保自建数据库没有限制ECS的访问;如果源或目标数据库是IDC自建数据库或其他云数据库,则需要您手动添加对应地区DTS服务的IP地址,以允许来自DTS服务器的访问。DTS服务的IP地址,请参见迁移、同步或订阅本地数据库时需添加的IP白名单。
警告DTS自动添加或您手动添加DTS服务的公网IP地址段可能会存在安全风险,一旦使用本产品代表您已理解和确认其中可能存在的安全风险,并且需要您做好基本的安全防护,包括但不限于加强账号密码强度防范、限制各网段开放的端口号、内部各API使用鉴权方式通信、定期检查并限制不需要的网段,或者使用通过内网(专线/VPN网关/智能网关)的方式接入。
配置任务对象及高级配置。
配置
说明
同步类型
固定选中增量同步。默认情况下,您还需要同时选中库表结构同步和全量同步。预检查完成后,DTS会将源实例中待同步对象的全量数据在目标集群中初始化,作为后续增量同步数据的基线数据。
源库触发器迁移方式
请根据实际情况选择同步触发器的方式,若您待同步的对象不涉及触发器,则无需配置。更多信息,请参见同步或迁移源库中的触发器。
说明仅当同步类型选择了库表结构同步时才可以配置。
同步拓扑
选择单向同步。
目标已存在表的处理模式
预检查并报错拦截:检查目标数据库中是否有同名的表。如果目标数据库中没有同名的表,则通过该检查项目;如果目标数据库中有同名的表,则在预检查阶段提示错误,数据同步任务不会被启动。
说明如果目标库中同名的表不方便删除或重命名,您可以更改该表在目标库中的名称,请参见库表列名映射。
忽略报错并继续执行:跳过目标数据库中是否有同名表的检查项。
警告选择为忽略报错并继续执行,可能导致数据不一致,给业务带来风险,例如:
表结构一致的情况下,如在目标库遇到与源库主键或唯一键的值相同的记录:
全量期间,DTS会保留目标集群中的该条记录,即源库中的该条记录不会同步至目标数据库中。
增量期间,DTS不会保留目标集群中的该条记录,即源库中的该条记录会覆盖至目标数据库中。
表结构不一致的情况下,可能会导致无法初始化数据、只能同步部分列的数据或同步失败,请谨慎操作。
源库对象
在源库对象框中选中待同步对象,然后单击将其移动至已选择对象框。
说明同步对象选择的粒度为库、表、列。若选择的同步对象为表或列,其他对象(如视图、触发器、存储过程)不会被同步至目标库。
已选择对象
单击下一步高级配置,进行高级配置。
本方案保持默认配置。您可以根据实际业务需要进行配置,更多信息,请参见配置数据同步任务。
上述配置完成后,单击页面下方的下一步保存任务并预检查。
您可以将鼠标光标移动至下一步保存任务并预检查按钮上,然后单击气泡中的预览OpenAPI调用,查看调用API接口配置该实例时的参数信息。
预检查通过率显示为100%时,单击返回列表。
同步任务正式开始,您可在数据同步界面查看具体任务进度。
步骤四:配置DNS解析记录
您可以添加CNAME记录,将用户的请求解析到两个地域下的公网型ALB的DNS名称。
登录云解析DNS控制台。
单击域名解析,然后在域名解析列表中,单击目标域名右侧的解析设置。
单击添加记录,填写域名解析信息。
项目
说明
记录类型
选择域名指向的类型。 此处选择CNAME记录。
主机记录
根据域名前缀填写主机记录。本方案以顶级域名为例,例如
example.com
,输入@。解析线路
解析域名时使用的线路。 选择默认,系统将自动选择最佳线路。
记录值
分别将上海和北京地域ALB的2个DNS名称添加为记录值。
TTL
域名的更新周期,保留默认值。
单击确定。
完成及清理
15
方案验证
在多个服务器上完成了生产服务部署后,您可以停止任一服务器,来验证在部分服务器不可用时,服务的可用性。
登录ECS管理控制台。
在左侧导航栏,选择
。在顶部菜单栏,选择和试用实例相同的地域。
选择任意1个ECS实例,在其右侧操作列,选择
。在停止实例页面,选择普通停机模式,然后单击确定。
待实例状态变成已停止后,再次访问网站,网站依然可以访问。
以停止APP001实例为例,使用任意一台可以连接公网的终端来测试网站连通性。
打开终端的命令行窗口。
多次执行
curl http://网站域名
命令,如果网站依然可以正常响应,且返回信息类似下图在APP002、APP003、APP004之间切换,则表示该方案部署成功。
清理资源
登录资源编排管理控制台,左侧导航栏菜单选择资源栈。
在页面的顶部选择部署的资源栈所在地域,找到部署的资源栈。单击其右侧操作列的删除并确认,可一键删除所有创建的资源。
删除云企业网实例并退订带宽包。
登录云企业网管理控制台,在云企业网实例页面,找到目标云企业网实例,单击目标实例ID。
删除上海地域的DTS云服务路由条目、自定义路由表、跨地域连接、转发路由器实例。
在
页签,找到上海地域的转发路由器实例,单击目标实例ID。在转发路由器实例详情页面,单击转发路由器路由表页签。
在页签左侧区域,单击目标路由表ID,在路由表详情页面的路由条目页签下,找到目标DTS云服务路由条目,在操作列单击删除。
在路由表详情页面的基本信息区域右侧,单击删除以删除自定义路由表。
在转发路由器实例详情页面,单击跨地域连接管理页签,找到目标跨地域连接,在操作列单击删除。
在删除对话框,逐一确认每个地域下跨地域连接关联的各种配置,确认无误后在对话框底部选中确认上述x条配置删除后不影响业务稳定性,可一次性全部删除,然后单击确定。
在确定删除实例对话框,再次进行确认,然后单击确认。
返回
页签,找到上海地域的转发路由器实例,在操作列单击删除。
根据以上步骤,依次检查删除北京地域的DTS云服务路由条目、自定义路由表、跨地域连接、转发路由器实例。
解绑带宽包。
在云企业网实例详情页面,选择
管理页签,找到目标带宽包,在操作列单击解绑,并完成解绑操作。删除云企业网实例。
返回云企业网实例页面,找到目标云企业网实例,在操作列单击删除。
退订带宽包。
更多信息,请参见退订管理。