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

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云服务器ECS,u1 2核4GB 1个月
简介: 如何部署

高可用的好处

高可用架构可以提供业务分发、弹性扩展、以及多可用区部署功能。相较于使用单台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. 已部署完成
相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
定位技术
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
|
1月前
|
存储 边缘计算 监控
【MODBUS】Modbus主站云端服务器和边缘设备部署区别
【MODBUS】Modbus主站云端服务器和边缘设备部署区别
36 0
|
1月前
|
弹性计算 运维 安全
2024年阿里云一键搭建部署幻兽帕鲁服务器解决方案
幻兽帕鲁火了,为了确保畅快体验游戏,构建高效、稳定的游戏服务器至关重要。幸运的是,阿里云为您提供了快速、简便的服务器搭建解决方案,即使您对技术知识了解有限,也能在短短一分钟内轻松完成《幻兽帕鲁》游戏的联机服务器搭建!
1454 4
|
2天前
|
域名解析 网络协议 安全
服务器部署访问出错的原因和解决办法
部署到服务器后无法访问可能是由于配置错误、权限问题或网络设置不当。解决办法包括检查服务器配置文件、确保文件路径正确、调整权限设置以及检查防火墙和端口设置。
13 4
|
7天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
12 1
|
8天前
|
Java 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
8天前
|
弹性计算 Java Linux
阿里云服务器搭建部署宝塔详细流程
该内容是一个阿里云服务器和域名的配置指南。首先,需注册阿里云账号并进行企业实名认证。接着,选购服务器如2核2G1兆的Linux系统,并购买域名。完成域名备案后,进行域名解析和ICP备案。然后,通过远程连接登录服务器,重置密码,安装宝塔面板。在安全组中开启宝塔面板随机生成的端口。最后,登录宝塔面板安装LNMP环境,配置数据库如MySQL和Redis,部署JDK、Tomcat,上传前端和后端项目以实现上线。
|
9天前
|
弹性计算 JavaScript Java
阿里云服务器搭建部署宝塔详细流程
以下是内容的摘要: 本文主要介绍了在阿里云上创建和配置服务器环境的步骤,包括注册阿里云账号、实名认证、购买和设置服务器、域名的获取与备案、以及使用宝塔面板安装和配置环境。首先,用户需要注册阿里云账号并进行实名认证,选择合适的服务器配置。接着,购买服务器后,要准备并备案域名,以便通过友好的网址访问网站。在服务器上安装宝塔面板,可以方便地管理和配置LAMP/LNMP/Tomcat/Node.js等应用环境。完成这些步骤后,用户还需要在宝塔面板中安装MySQL、Redis等数据库,部署Java或Vue项目,并配置相关端口。最后,将前端项目打包上传至服务器,并设置站点,即可实现网站的上线。
|
9天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
11天前
|
NoSQL 关系型数据库 MySQL
阿里云服务器部署项目流程
本文主要讲解阿里云服务器的部署,如何选择配置等