开发者社区> 龙哥手记> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用ECS快速部署高可用集群

简介: 如何部署
+关注继续查看

高可用的好处

高可用架构可以提供业务分发、弹性扩展、以及多可用区部署功能。相较于使用单台ECS实例部署数据库与应用,对于高可用只需要简单部署,并且拥有更高的稳定性和可扩展性。


有句古话“牵一发而动全身”。


面对一个庞然大物,如果没有一个合理的分工分层,任何一个小小事务都会无限放大,酿成巨大灾难。


万物想通,回到我们的软件架构。


早期的系统都是单体系统,比如电商业务,会员,商品,订单,物流,营销等模块都堆积在一个系统。每到节假日搞个大促活动,系统扩容时,一扩全扩,一挂全挂,只要有一个接口出了问题,整个系统都不可用。


系统拆分成子系统,每个子系统只负责专属的业务功能,做好春之花建设,各个子系统之间做好边界隔离,降低风险蔓延。


高可用架构有如下特点:

  • 1. 使用多可用区高可用版的负载均衡SLB(Server Load Balancer)能对多台云服务器ECS进行流量分发,能够扩展应用系统的对外服务、能够消除单点故障,提升应用系统的整体可用性,我们如果使用SLB能够自动跨可用区进行部署,能够加强业务容灾能力。
  • 2. 另外用自定义镜像,可以迅速复制出相同应用部署的云服务器ECS实例,之后把实例添加到SLB后端服务器组里面,实现业务的高可用。SLB可以同时配置四层以及七层监听,及轮循、加权轮循、加权最小连接数等多种算法,这样能够合理分配后端ECS计算资源。
  • 3. 最后用云数据库RDS,针对高并发场景进行特殊优化,同时也引入线程池、并行复制、隐含主键等功能保证系统持续稳定和高吞吐。这样云数据库CloudDBA就具有完备的性能监控数据,实时监控实例的各种硬件使用指标、慢SQL,并给出各种优化建议供你选择,帮您快速定位出并顺利解决问题。

部署流程

如果您现在已拥有一台ECS实例,并且在该实例上部署了数据库与应用,现在可以将单实例部署方式转变为单可用区或多可用区高可用架构,教你如何使用ECS、EIP、SLB和RDS产品来部署多可用区高可用架构,看下图


17.png

第一步,使用自定义镜像,部署多台相同配置的ECS实例


第二步,创建负载均衡SLB实例,把实例添加到SLB后端服务器组里面,用于跨可用区挂载ECS实例,实现业务的高可用性。详情参考如何配置SLB实例;


第三步,使用DTS将ECS实例上的自建数据库迁移至RDS实例,保障业务数据库不中断,自动备份保障数据不丢失。详情请参考迁移自建数据库至RDS实例;


第一步 复制ECS实例

为了支持跨可用区容灾部署,本教程使用源实例的自定义镜像复制出三台ECS实例出来,一台与源实例位于同一可用区,两台与源实例位于同一地域下的不同可用区

1 前提条件

  • 已经注册阿里云账号,如果还未注册,请先完成账号注册
  • 已经拥有待复制的一个源ECS实例

2 操作步骤

  1. 给ECS实例创建自定义镜像
    1. 登录ECS管理控制台
    2. 在左侧导航栏,单击实例与镜像 > 实例
    3. 在顶部菜单栏处,选择地域。
    4. 找到目标实例。在操作列中,单击更多 > 磁盘和镜像 > 创建自定义镜像
    5. 输入镜像名称和描述信息。
    6. 单击创建

说明 创建镜像需要一段时间,请您耐心等待。

在左侧导航栏,单击实例与镜像 > 镜像。当目标镜像的进度为100%、状态为可用时,表示镜像已经创建成功

1.png

  1. 用自定义镜像创建出3台ECS实例
    1. 在左侧导航栏,单击实例与镜像 > 镜像
    2. 自定义镜像页面,找到上一步创建的自定义镜像,在操作列,单击创建实例
    3. 自定义购买页面,镜像区域已设置为您选择的自定义镜像。根据页面提示,完成其他配置项并购买1台ECS实例。其中:
      • 地域:选择与源实例相同的地域。
      • 可用区:选择与源实例相同的可用区。
      • 公网带宽:取消勾选分配公网IPv4地址
    1. 更多配置详情,请参考使用向导创建实例
    2. 重复第i步第ii步。在自定义购买页,镜像区域已设置为您选择的自定义镜像。根据页面提示,完成其他配置项并购买2台实例。其中:
      • 地域:选择与源实例相同的地域。
      • 可用区:选择与源实例不同的可用区。
      • 实例区域:设置购买实例数量为2。
      • 公网带宽区域:取消勾选分配公网IPv4地址
    1. 更多配置详情,请参考使用向导创建实例

3 执行结果

在左侧导航栏,单击实例与镜像 > 实例。在实例列表页面,四台ECS实例的状态均为运行中,可用区两两是相同的

2.png


第二步 配置SLB实例

ECS实例复制完成后,在支持多可用区的地域创建负载均衡SLB实例,能够用于跨可用区挂载ECS实例,扩展应用系统对外的服务能力、消除单点故障,提高应用系统的可用性,本文介绍SLB实例的部署方法。

1 准备工作

  • 已复制三台ECS实例,更多信息,请参考复制ECS实例
  • 四台ECS实例的Web服务均已启动并能够正常运行

注意 若Web服务未运行,则SLB实例与ECS实例之间无法正常通信的哈

2 操作步骤

  1. 首先创建SLB实例,具体操作,请参考创建实例,配置如下:
    • 地域:必须与ECS实例位于同一地域。
    • 可用区类型:选择多可用区
    • 实例类型:选择私网
    • 网络类型:选择专有网络
    • 主可用区备可用区:按需配置。
  1. 3.png
  2. 把源实例的公网IP转成弹性公网IP,具体操作,请参考专有网络类型ECS公网IP转为弹性公网IP


说明 为避免影响业务,需保证源实例IP地址不变。所以,需要先把源实例的公网IP转换成弹性公网IP,然后与源实例解绑后,再把它绑定至高可用版SLB实例上面

4.png

  1. 解绑源实例与弹性公网IP
    1. 在源实例的IP地址列,单击弹性IP地址链接。

5.png

    1. 弹性公网IP页面,单击解绑6.png
    2. 单击确定。更多信息,请参考解绑EIP
  1. 绑定弹性公网IP到SLB实例上面
    1. 弹性公网IP页面,找到与源实例解绑后的弹性公网IP7.png
    2. 操作列,单击绑定
    3. 实例类型选择SLB实例SLB实例选择刚创建的SLB实例,单击确定。更多信息,请参考绑定SLB实例
  1. 配置SLB实例,具体操作,请如何配置配置实例,基本配置如下:
    1. 协议&监听页签,完成以下配置。
      • 负载均衡协议:选择TCP
      • 监听端口:输入80
      • 调度算法:按需选择。本教程选择轮询
      • 其他配置使用默认值。

9.png

  1. 单击下一步。在后端服务器页签,选择默认服务器组,单击继续添加添加ECS实例10.png
    1. 勾选源实例和已复制的三台ECS实例,单击下一步:配置权重和端口号端口配置为80,其他值保持默认,单击下一步11.png
    2. 健康检查页签,使用默认值,单击下一步
    3. 配置审核页签,核对信息后,单击提交
    4. 单击确定,返回实例管理页面,单击12.png,当健康检查状态为正常时,表示后端ECS实例可以正常处理负载均衡转发的请求了。



说明 健康检查需要几分钟时间,请您耐心等待并单击刷新图标查看状态。


13.png

第三步 执行结果

为方便测试,本教程分别在四台ECS实例上搭建了静态网页,来标识每台ECS实例。在浏览器中输入负载均衡实例的服务地址,测试负载均衡服务。由于调度算法轮询,那么请求会轮流发往每台ECS实例里面。14.png

将源ECS实例上的数据库迁移至高可用版云数据库RDS,可实现数据库服务的高可用性、高可靠性、高安全性和高易用性。以MySQL数据库为例,介绍如何使用DTS将ECS实例上的自建数据库迁移至高可用版RDS实例上面

1 准备工作

  • 已配置SLB实例,详情请参考配置SLB实例
  • 已经创建高可用版RDS实例,并且部署方案为多可用区部署。但是未创建,请参考创建RDS MySQL实例
  • 已为RDS实例创建账号。但是如未创建,请参考创建数据库和账号
  • 已为ECS实例上的自建数据库创建非root账号,用于DTS迁移。例如,您可以运行以下命令为MySQL数据库创建名为dts、密码为123456的账号
grant all on *.*  to 'dts'@'%'  IDENTIFIED BY '123456';


2 背景信息

DTS提供的数据迁移功能能够支持同异构数据源之间的数据迁移,同时提供了库表列三级映射、数据过滤多种ETL特性。

您可以使用DTS进行零停机迁移,在迁移过程中,源数据库正常持续提供服务,最大程度降低迁移对业务的影响。DTS支持的数据库类型请参考数据迁移

3 操作步骤

  1. 登录数据传输DTS控制台
  2. 在左侧导航栏,单击数据迁移
  3. 选择目标RDS实例所在地域,并单击创建迁移任务
  4. 配置迁移任务
    1. 配置任务名称。您可以使用默认的名称或者自定义名称。
    2. 配置源库信息。DTS支持通过公网、VPN网关、专线及智能网关访问的自建数据库。本教程使用的源数据库为ECS实例上的自建数据库。其他类型数据库的迁移方案;
参数名称描述
实例类型ECS上的自建数据库。
实例地区源ECS实例所在地域。
ECS实例ID源ECS实例的实例ID。DTS支持经典网络及专有网络的ECS实例。
数据库类型源ECS实例上自建数据库的类型。本示例中,数据库类型为MySQL。
端口MySQL数据库监听的端口号。
数据库账号源ECS实例上MySQL数据库的非root账号。

说明 数据库账号必须填写非root账号,否则测试连接时会报错。

数据库密码非root账号对应的密码。


    1. 单击源库信息右下角的测试连接。当返回的结果为测试通过时,表示源库连接正常。
    2. 配置目标库信息。
参数名称参数值
实例类型RDS实例。
实例地区RDS实例所在地域。
RDS实例IDRDS实例的实例ID。
数据库账号RDS实例的账号。 为RDS实例创建账号,请参考创建数据库和账号


说明 数据库账号必须填写非root账号,否则测试连接时会报错。

数据库密码账号对应的密码。


    1. 单击目标库信息右下角的测试连接。当返回的结果为测试通过时,表示目标库连接正常。
    2. 单击授权白名单并进入下一步
  1. 配置迁移类型及迁移对象。
    1. 配置迁移类型。
      • 业务零停机迁移,请选择:结构迁移+全量数据迁移+增量数据迁移。
      • 全量迁移,请选择:结构迁移+全量数据迁移。
    1. 配置迁移对象。在迁移对象框中单击要迁移的数据库对象,如数据库、表或列,然后单击>添加到已选择对象框中。
      说明

默认情况下,数据库对象迁移到ECS自建MySQL实例后,对象名跟本地MySQL实例一致。如果迁移的数据库对象在源实例跟目标实例上名称不同,您需要使用DTS提供的对象名映射功能,详情请参见库表列映射

  1. 单击预检查并启动。在迁移任务正式启动之前,会预检查连通性、权限及日志格式等。下图表示预检查成功通过15.png
  2. 预检查通过后,您可以在迁移任务列表中查看迁移任务的迁移状态及进度16.png
  3. 已部署完成

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
我的ECS使用体验报告
飞天加速计划·高校学生在家实践
0 0
我的ECS使用体验报告
弹性计算 Ubuntu 物联网 Linux 程序员 Windows
0 0
我的ECS使用体验报告
学生用户初次使用阿里云服务器的体验报告
0 0
ECS使用体验报告
阿里云ECS使用体验以及总结
0 0
我的ECS使用体验报告
我是一名大一的在校生,因为爱好,有幸了解到阿里云服务器,了解到有飞天加速计划·高校学生在家实践活动,这个活动优惠力度很大,里面有很多我们可以免费学习的知识,下面是我初次使用阿里云服务器的体验报告。
0 0
ECS使用体验报告
本篇文章介绍了做为大四即将毕业学生的我,对ECS使用的初级体验,以及一些心得。包含了我对云数据的最新的认识和想法。
0 0
我的ECS使用体验报告
大学生用户初次使用阿里云服务器 的体验报告
0 0
高校学生在家实践ecs使用体验
因为有服务器的需要,听说阿里的ecs很不错,专门过来体验一下。
0 0
+关注
龙哥手记
微信搜索「龙哥手记」,回复关键字:见面礼
文章
问答
文章排行榜
最热
最新
相关电子书
更多
ECS全知道(下) 镜像与快照+块存储、安全、网运维与监控
立即下载
ECS云磁盘热迁移
立即下载
ECS弹性裸金属服务器产品(神龙)深度解析
立即下载