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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
传统型负载均衡 CLB,每月750个小时 15LCU
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 如何部署

高可用的好处

高可用架构可以提供业务分发、弹性扩展、以及多可用区部署功能。相较于使用单台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实例ID RDS实例的实例ID。
数据库账号 RDS实例的账号。 为RDS实例创建账号,请参考创建数据库和账号


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

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


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

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

  1. 单击预检查并启动在迁移任务正式启动之前,会预检查连通性、权限及日志格式等。下图表示预检查成功通过15.png
  2. 预检查通过后,您可以在迁移任务列表中查看迁移任务的迁移状态及进度16.png
  3. 已部署完成
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
弹性计算 监控 负载均衡
|
26天前
|
监控 安全 Linux
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第18天】在RHEL环境下部署Subversion服务器需依次完成安装Subversion、创建版本库、配置服务器、启动服务、客户端连接及备份维护等步骤。确保遵循安全最佳实践,保障数据安全。
|
7天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
16天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
153 2
|
16天前
|
NoSQL Linux PHP
|
17天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
76 1
|
23天前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
37 1
|
6天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
39 9
|
3天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
6天前
|
弹性计算 异构计算
2024年阿里云GPU服务器多少钱1小时?亲测价格查询方法
2024年阿里云GPU服务器每小时收费因实例规格不同而异。可通过阿里云GPU服务器页面选择“按量付费”查看具体价格。例如,NVIDIA A100的gn7e实例为34.742元/小时,NVIDIA A10的gn7i实例为12.710156元/小时。更多详情请访问阿里云官网。
40 2
下一篇
无影云桌面