首页 云上高可用架构

云上高可用架构

更新时间: 2025-01-22 14:13:50

手动部署

100

https://www.aliyun.com/solution/tech-solution/hablog

方案概览

业务的持续稳定可服务,决定着企业对客户的服务质量,是企业发展的基础。而应用部署的高可用架构对于业务的稳定与发展起着至关重要的作用,本方案从企业上云最基础的需求出发,面向可能遇到的单点故障风险,介绍了“业务上云高可用架构”方案设计,为您演示:

  • 如何搭建一个跨可用区的高可用架构系统

  • 搭建完成后,通过模拟故障,观察网站的可用性

方案架构

本架构采用单地域双可用区部署,将业务系统、数据库部署在2个不同可用区,实现了可用区级故障灾备能力,从而保证了业务的连续性。同时,该架构还利用专有网络VPC、交换机和跨可用区安全组等基础设施,实现了私有网络下的系统通信。

方案提供的默认设置完成部署后在阿里云上搭建的高可用架构如下图所示。实际部署时您可以根据资源规划修改部分设置,但最终形成的运行环境与下图相似。

image

本方案的技术架构包括以下基础设施和云服务:

基础设施和云服务

说明

1个专有网络VPC

为应用型负载均衡ALB、云服务器ECS、云数据库RDS等云资源构建云上私有网络。

6个交换机

按照经典架构设计6台交换机,3个子网平面(公网平面、业务平面、数据平面),分别部署在2个可用区,提供基本的网络分段和隔离功能。

  • 公网平面:ALB所在平面,承载应用对公网提供的统一服务入口。

  • 业务平面:2台ECS所在平面,承载应用服务内部组件之间的交互。

  • 数据平面:1对RDS主备节点所在平面,承载数据库的存储、访问。

1个安全组

用于限制专有网络VPC下云服务器ECS的网络流入和流出规则。

2台云服务器ECS

用于部署示例应用程序。本方案需要2台ECS实例,要求同地域、同VPC、不同可用区(即与网络规格在同一个地域,选择交换机所在的2个可用区,用于实现跨可用区高可用)。

1个公网应用型负载均衡ALB

将公网访问流量分发到不同云服务器ECS,通过流量分发扩展应用系统的服务能力,通过消除单点故障提升应用系统的可用性。支持配置后端服务器组自动弹性伸缩。公网ALB通过EIP提供公网服务能力。

1个云数据库RDS MySQL高可用版

为业务系统提供数据服务。本方案需要高可用版的 RDS MySQL 1台,要求与ECS同地域、同VPC,对应相同的可用区。

1个域名(可选)

为应用提供可访问的已备案域名。

1个云解析 DNS (可选)

配置域名解析到 ALB 实例的DNS 名称,实现通过域名访问网站。

部署准备

10

开始部署前,请按以下指引完成账号申请、账号充值等准备工作。

准备账号

  1. 如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。

  2. 为阿里云账号充值。本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。如果确定任何一个云资源采用按量付费方式部署,账户余额都必须大于等于100元。

部署资源

60

规划好资源后,请按照以下步骤部署方案中的所有资源。

创建专有网络VPC和交换机

为了实现高可用,您需要将云服务器等资源尽可能分布在多个可用区,规避单可用区故障造成的服务不可用。本方案以双可用区为例,因此,您需要创建1个专有网络和6个交换机。

  1. 登录专有网络管理控制台

  2. 在顶部菜单栏,选择华东1(杭州)地域。

  3. 在左侧导航栏,单击专有网络

  4. 专有网络页面,单击创建专有网络

  5. 创建专有网络页面,配置1个专有网络和6台交换机。配置交换机时,请确保交换机所属的可用区的ECS、ALB是可用状态。

    项目

    说明

    示例值

    VPC名称

    建议您在部署过程中新建一个VPC作为本方案的专有网络。部署过程中填写VPC名称即可创建对应名称的VPC。

    长度为2~128个字符,以英文大小字母或中文开头,可包含数字、下划线(_)和连字符(-)。

    VPC_HZ

    IPv4网段

    在创建VPC时,您必须按照无类域间路由块(CIDR block)的格式为您的专有网络划分私网网段。阿里云VPC支持的网段信息请参见什么是专有网络

    在网络规划时可以按照管理网段-开发网段-测试网段-生产网段等规则做好规划。网段一旦投入使用,调整过程复杂,因此规划十分重要。

    192.168.0.0/16

    交换机

    建议您创建6个交换机,平均分布在两个可用区,可用区需要确保ECS、ALB是可用状态(例如可用区J、可用区K),交换机名称

    长度为2~128个字符,以英文大小字母或中文开头,可包含数字、下划线(_)和连字符(-)。

    • vsw_pub_001

    • vsw_pub_002

    • vsw_app_001

    • vsw_app_002

    • vsw_db_001

    • vsw_db_002

    可用区

    建议选择排序靠后的,一般此类可用区较新。新可用区资源更充沛,新规格也会在新的可用区优先上线。

    • 可用区 J

    • 可用区 K

    IPv4网段

    每台虚拟交换机需要一个IPv4网段

    例如:

    • vsw_db_001:192.168.1.0/24

    • vsw_db_002:192.168.2.0/24

    最终交换机与可用区创建如下所示:

创建安全组

您已经在1个专有网络VPC下的2个可用区分别创建3台交换机。接下来您需要创建1个跨可用区的安全组,用于限制该专有网络VPC下的6台交换机的网络流入和流出。

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择网络与安全>安全组

  3. 在顶部菜单栏,选择华东1(杭州)地域。

  4. 安全组页面,单击创建安全组

  5. 创建安全组页面,创建1个安全组。

    项目

    说明

    示例值

    名称

    设置安全组的名称。

    SecurityGroup_1

    网络

    选择之前规划的专有网络VPC。

    VPC_HZ

    安全组类型

    本方案选择普通安全组,具体差异您可以参考普通安全组与企业级安全组

    普通安全组

    入方向

    入方向除默认的端口号外,本方案还需添加3306端口号。

    3306

创建云服务器ECS

您已经创建1个双可用区的专有网络VPC。接下来您需要在2个可用区分别创建1个云服务器ECS实例,来实现服务跨可用区的高可用。

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像>实例

  3. 在顶部菜单栏,选择华东1(杭州)地域。

  4. 实例页面,单击创建实例

  5. 在云服务器ECS购买页面,创建2台云服务器ECS,两台ECS需要分布在两个可用区(与专有网络创建交换机时所使用的可用区一致,本示例为可用区J和K)。

    项目

    说明

    示例值

    实例名称

    实例的名称。

    APP001

    网络

    VPC专有网络

    选择上一步创建的专有网络

    可用区及交换机

    使用之前创建的交换机所对应的可用区。

    可用区 J或K中的

    vsw_app_001和vsw_app_002

    支付方式

    按量付费

    实例规格

    ECS的实例规格及内核、vCPU数量。关于ECS选型的最佳实践请参见实例规格选型指导

    ecs.e-c1m2.large

    镜像

    ECS的“装机盘”,为ECS实例提供操作系统、预装软件等。

    CentOS

    镜像版本

    镜像的版本。

    CentOS 7.6 64位

    系统盘类型

    硬盘类型。

    ESSD云盘

    系统盘容量

    硬盘容量。

    40 GiB

    公网IP

    用于在云服务器ECS上从公网拉取Docker镜像和配置博客网站服务。

    分配公网 IPv4 地址

    带宽计费方式

    由于本方案只需在某些情况下上传图片,因此选择按使用流量,以节省流量成本。

    按使用流量

    带宽值

    本方案以5 Mbps为例。

    5 Mbps

    安全组

    使用之前创建的安全组。

    SecurityGroup_1

    管理设置

    使用自定义密码,方便后续登录服务器安装相关软件。

    自定义密码

创建负载均衡ALB

接下来您需要创建1个公网类型的应用型负载均衡ALB并配置服务器组和监听,从而实现这个专有网络VPC下的2台云服务器ECS对外的公网访问和流量分发。

  1. 登录应用型负载均衡ALB控制台

  2. 创建应用型负载均衡ALB实例:

    1. 在顶部菜单栏左上角,选择华东1(杭州)地域。

    2. 实例页面,单击创建应用型负载均衡

    3. 应用型负载均衡(按量付费)页面,购买1个ALB实例。

    4. 项目

      说明

      示例值

      实例网络类型

      本方案面向公网提供应用型负载均衡服务,公网可访问。

      公网

      VPC

      选择之前规划的VPC。

      VPC_HZ

      可用区和交换机

      选择之前规划的交换机。

      • 杭州可用区 J vsw_pub_001

      • 杭州可用区 K vsw_pub_002

      IP模式

      每个可用区至少有一个IP,随着业务请求的增加,应用型负载均衡会自动扩展IP数量,此模式下应用型负载均衡具备超强弹性能力。

      动态IP

      协议版本

      本方案以IPV4为例。

      IPV4

      功能版本(实例费)

      本方案以基础版为例。

      基础版

      实例名称

      设置应用型负载均衡ALB实例的名称。

      ALB_HZ

  3. 创建服务器组:

    1. 在左侧导航栏,选择应用型负载均衡ALB>服务器组

    2. 服务器组页面,单击创建服务器组

    3. 创建服务器组面板,设置服务器组名称,选择ECS所在的VPC,选择默认资源组,其他保持默认设置,然后单击创建

  4. 配置服务器组端口为80:

    1. 服务器组页面,找到创建的服务器组实例,在其右侧操作列,单击编辑后端服务器

    2. 后端服务器组页签下,单击添加后端服务器

    3. 添加后端服务器面板,添加后端服务器组:

      1. 选中之前创建的2台ECS实例,单击下一步

      2. 再次选中之前创建的2台ECS实例,设置端口为80,其他保持默认设置,然后单击确定

  5. 创建80端口监听:

    1. 在左侧导航栏,选择应用型负载均衡ALB>实例

    2. 实例页面,找到创建的应用型负载均衡实例,在其右侧操作列,单击创建监听

    3. 配置监听页签下,设置监听端口为80,单击下一步

    4. 选择服务器页签下,选择创建的服务器组,单击下一步

    5. 配置审核页签下,确认配置,然后单击提交

创建云数据库RDS

您已经创建2台云服务器ECS。接下来您需要创建云数据库 RDS MySQL 版高可用、数据库、数据库账号。您需要记录创建的云数据库 RDS MySQL 版高可用的内网连接地址、数据库名称、账号、密码用于之后的配置和使用。

  1. 登录云数据库RDS控制台

  2. 创建云数据库 RDS MySQL 实例:

    1. 在左侧导航栏,选择实例列表

    2. 在顶部菜单栏,选择华东1(杭州)地域。

    3. 实例列表页面,单击创建实例,在购买页面按照以下配置完成数据库实例创建。

      项目

      说明

      示例值

      计费方式

      提供包年包月、按量付费、Serverless等计费方式,按需选择。

      按量付费

      地域

      本方案以华东1(杭州)地域为例。

      华东1(杭州)

      数据库引擎

      选择数据库引擎,本方案以MySQL 8.0为例。

      MySQL 8.0

      产品系列

      本方案推荐高可用系列,实现主备数据自动同步。

      高可用系列

      产品类型

      您可以选择标准版经济版,详情信息请参见产品类型

      标准版

      存储类型

      默认ESSD云盘 PL1。

      ESSD云盘 PL1

      网络类型

      默认选择专有网络。

      专有云网络

      专有网络VPC

      选择之前规划的专有网络VPC。

      VPC_HZ

      加入白名单

      将VPC网段加入到RDS实例白名单中,使得同一VPC下的ECS实例可以访问RDS实例。如果您此处配置了,您可以在实例创建成功后,手动设置白名单,具体请参见设置IP白名单

      主可用区及网络

      选择之前规划的交换机vsw_db_001。

      vsw_db_001:192.168.1.0/24

      部署方案

      推荐多可用区部署,主节点和备节点位于同一地域的不同可用区,具备跨可用区容灾。

      多可用区部署

      备可用区及网络

      选择之前规划的交换机vsw_db_002。

      vsw_db_002:192.168.2.0/24

      实例规格

      推荐独享规格,独占计算资源,性能更稳定。

      独享规格,mysql.x2.medium.2c,2核4GB

      存储空间

      存储空间的最小调整步长为5GB。部分基于本地SSD盘的实例的存储空间大小与实例规格绑定。

      20GB

  3. 进入实例基本信息页面:

    1. RDS管理控制台左侧导航栏,选择实例列表

    2. 实例列表页面,单击目标实例,进入实例管理页面。

  4. 创建数据库:

    1. 在左侧导航栏中单击数据库管理

    2. 单击创建数据库创建数据库面板。设置如下参数。

      参数

      说明

      数据库(DB)名称

      • 长度为2~64个字符。

      • 以小写字母开头,以小写字母或数字结尾。

      • 支持小写字母、数字、下划线和中划线。

      • 数据库名称在实例内必须唯一。

      说明

      数据库名称中如果包含-,创建出的数据库的文件夹的名字中的-会变成@002d

      支持字符集

      选择需要的字符集。

      备注说明

      数据库相关的备注说明,支持输入2~256个字符。

  5. 创建账号:

    1. 在左侧导航栏选择账号管理

    2. 用户账号页签下,单击创建账号

      说明

      账号重名或账号创建过于频繁(上一个账号还未创建结束)可能会有报错提示,出现该情况时,请检查账号名称是否重复或在上一个账号创建完成后再创建下一个账号。

    3. 填写数据库账号

      • 以小写字母开头,以小写字母或数字结尾。

      • 支持小写字母、数字和下划线。

      • 长度为2~32个字符。

    4. 选择账号类型

      • 普通账号:如果已创建数据库,则需选择要授权的数据库,单击图标添加至右侧,并设置权限:读写(DDL+DML)

      • 高权限账号:无需选择要授权的数据库,因为高权限账号拥有实例里所有数据库的权限。

      说明

      • 高权限账号与普通账号的详细区别,请参见创建账号

      • 如果无法选中高权限账号,说明实例里已经有一个高权限账号。

    5. 填写账号密码,单击确定

      • 长度为8~32个字符。

      • 至少包含大写字母、小写字母、数字、特殊字符中的任意三种。特殊字符为!@#$%^&*()_+-=

  6. 设置白名单

    1. 在左侧导航栏,选择白名单与安全组

    2. 选择安全组页签,单击添加安全组按钮。

    3. 选择安全组面板,选择规划的安全组,然后单击确定

  7. 获取数据库的内网地址:

    1. 在左侧导航栏,选择数据库连接

    2. 数据库连接区域下,复制内网地址

创建数据库表

  1. 登录云数据RDS控制台,在左侧导航页单击实例列表

  2. 实例列表页面找到目标实例,单击实例ID进入实例详情页面。

  3. 在实例详情页面,单击右上角登录数据库,输入数据库账号密码登录到DMS控制台。

  4. 在左侧数据库实例>已登录实例中选择目标数据库。

  5. SQL Console界面,执行如下建表语句。

    CREATE TABLE `todo_list` (
      `id` bigint NOT NULL COMMENT 'id',
      `title` varchar(128) NOT NULL COMMENT 'title',
      `desc` text NOT NULL COMMENT 'description',
      `status` varchar(128) NOT NULL COMMENT 'status 未开始、进行中、已完成、已取消',
      `priority` varchar(128) NOT NULL COMMENT 'priority 高、中、低',
      `expect_time` datetime COMMENT 'expect time',
      `actual_completion_time` datetime COMMENT 'actual completion time',
      `gmt_created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'create time',
      `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'modified time',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
    ;
  6. 执行以下代码,插入一条测试数据。

    INSERT INTO todo_list 
    (id, title, `desc`, `status`, priority, expect_time)
    value(1,  "创建一个高可用架构", "使用阿里云解决方案快速搭建云上高可用架构", "进行中", "高", "2024-07-30 00:00:00")

开通云数据传输CDT(推荐)

  1. 登录云数据传输CDT控制台

  2. 单击立即开通按钮并按操作指引完成开通。

  3. 检查本次方案涉及产品的升级状态,对未升级的产品执行去升级操作。

说明

开通成功后需继续将云产品升级至CDT计费,赠送200 GB/月公网流量,其中20 GB/月可用于全球地域(含中国内地),180 GB/月仅限非中国内地地域使用,可抵扣云服务器ECS、弹性公网IP等按流量计费实例产生的公网流量,超出部分采用阶梯计费。

应用部署

15

部署示例应用

开通了云资源后,接下来您需要执行以下操作部署示例应用:

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像>实例

  3. 在顶部菜单栏,选择华东1(杭州)地域。

  4. 部署示例应用。

    1. 实例页面,找到创建的两台ECS实例,在其右侧操作列,单击远程连接

    2. 远程连接对话框的通过Workbench远程连接区域,单击立即登录,然后根据页面提示登录。

    3. 执行以下命令

      sudo yum -y install java-1.8.0-openjdk-devel.x86_64
      
      cat << EOF >> ~/.bash_profile
      export APPLETS_RDS_ENDPOINT=<上一步中创建的RDS数据库链接地址>
      export APPLETS_RDS_USER=<上一步中创建的数据库用户名>
      export APPLETS_RDS_PASSWORD=<上一步中创建的数据库密码>
      export APPLETS_RDS_DB_NAME=<上一步中创建的数据库名称>
      EOF
      
      source ~/.bash_profile
      
      wget https://help-static-aliyun-doc.aliyuncs.com/tech-solution/cloud-demo-0.0.2.jar
      nohup java -jar cloud-demo-0.0.2.jar > demo.log 2>&1 &

配置域名(可选)

说明

如果您仅希望体验方案,无需配置域名,可以跳过此步骤。

如果您希望将该方案部署到生产环境。需要完成以下操作:

  • 需要使用独立域名,且域名必须经过 ICP 备案。

  • 域名按照要求添加解析记录。

域名申请和备案

  1. 创建域名信息模板并实名认证。

    1. 登录阿里云域名控制台

    2. 在左侧导航栏单击信息模板,在信息模板页面单击创建新信息模板

      1

    3. 根据界面提示,完成域名持有者信息填写,单击提交

      展开查看填写说明。

      参数

      个人

      企业/组织

      域名持有者类型

      选择个人

      选择企业/组织

      信息填写方式

      选择是否自动关联您的阿里云账号信息。

      说明

      如果您使用子账号登录域名控制台,则页面中没有此参数,您需手动填写域名持有者信息。

      域名联系人(中文)

      填写域名联系人名称,通常是公司的技术人员作为域名联系人。

      所属区域

      选择真实有效的通讯地址。

      选择与营业执照上一致的区域。

      说明

      如果无法选择省市信息,建议您更换浏览器或更换网络环境。

      通讯地址(中文)

      填写真实有效的通讯地址。

      填写与营业执照上一致的通讯地址。

      邮编

      填写通讯地址所在地的邮政编码。

      填写企业所在地的邮政编码。

      电子邮箱

      填写域名联系人的电子邮箱,填写完成后请单击输入框下方的点击进行邮箱验证,进行验证。

      说明
      • 建议不要使用test@test.club等新顶级域名后缀邮箱,避免域名订单长时间处于处理中状态,错失域名抢注等机会。

      实名认证上传材料填写样例请参见如下:

    4. 阿里云域名控制台的左侧导航栏的信息模板中找到待查看的信息模板,查看实名认证状态

      说明

      域名实名认证资料的审核通常在1个工作日内可以完成,部分可能需要3~5个工作日,请您耐心等待审核结果。

  2. 购买域名

    1. 查询域名。

      1. 登录阿里云域名注册

      2. 在阿里云域名注册页面的搜索框中,搜索您想要注册的域名以及域名后缀,单击查询域名

        1

    2. 加入域名清单。

      1. 对于查询结果为未注册的域名,单击加入清单

        加入清单

      2. 域名清单中确认已添加的域名,单击立即购买

    3. 确认订单信息。

      1. 确认订单页面,选择域名的购买年限和域名所有者类型。

        确认订单

        说明

        若您注册的是“.gov.cn”后缀域名,域名持有者类型只能为企业

      2. 选择已完成实名认证的域名持有者信息模板。

    4. 选择支付方式后,单击立即支付

      完成支付后,域名注册订单会短暂的显示为处理中状态,待订单状态变为成功,域名即注册成功。

  3. ICP备案前准备

    1. (可选)前置审批。

      新闻类、出版类、药品和医疗器械类、文化类、广播电影电视节目类、教育类、医疗保健类、网络预约车、电子公告类等行业的互联网信息服务,需联系当地机关办理对应的前置审批手续。各类行业对应的办理机关及手续类型请参见前置审批

    2. 管局规则。

      了解ICP备案所在地域的管局规则,根据管局要求准备ICP备案的材料。详细信息请在各地区管局备案规则中单击对应省份查看。

  4. 提交ICP备案

    1. 填写信息进行校验。

      阿里云ICP代备案管理系统,根据界面提示,按要求填写主办单位信息和网站/App信息等,系统将根据您所填信息,自动校验是否可以进行ICP备案。

    2. 阿里云初审。

      提交ICP备案初审订单后,订单状态为阿里云审核中,阿里云将会在1个工作日左右进行审核,具体以实际审核时间为准。

      image

    3. (可选)邮寄资料。

      说明

      阿里云初审后如果需要您邮寄资料,审核人员会通知您。如果您在初审时未收到需要邮寄资料的相关通知,则无需邮寄资料,ICP备案流程将进入下一个阶段。

    4. 工信部短信核验。

      当需要验证的手机号收到工信部发出的验证码短信后,您需在收到核验短信的24小时内,访问工信部备案管理系统进行短信核验。

      说明

      建议通过手机移动数据(关闭WiFi连接)进行短信核验。

      1. 进入工信部备案管理系统,单击短信核验

      2. 填写短信核验信息。

        短信核验页签下,根据下方要求填写短信验证码、手机号码、证件号码后6位等信息,填写完成后单击提交,系统将进行自动审核。

        短信核验项

      3. 确认短信核验结果。

        • 如系统提示您的短信核验已全部完成,该请求将提交管局审核,说明您的ICP备案订单已完成短信核验操作。

          说明

          短信核验成功后,您的ICP备案订单将直接进入管局审核,工信部不会下发短信通知。短信核验结果会在24小时内同步至阿里云,您可前往阿里云ICP代备案管理系统我的备案中查看。

          核验完成

        • 如系统提示您的短信核验完成,请等待其他核验人进行短信核验,说明您的ICP备案订单中还有其他需要验证的手机号码,请联系其他负责人及时完成核验。

          还有一个人没有核验

    5. 管局审核。

      订提交管局后订单为待提交管局状态,阿里云审核专员将会在1个工作日左右将您的订单提交至管局审核,具体以实际提交时间为准

      各省管局审核时间不同,实际审核时长会根据ICP备案场景有所不同,一般为1~20个工作日,具体以实际审核时间为准。管局审核通过后表示您的ICP备案即已完成,审核结果会发送至您的手机和邮箱。

  5. ICP备案后操作

    1. 添加ICP备案号及版本所有 。

      ICP备案成功后,您需要在互联网信息服务底部添加备案号和跳转至工信部的链接,以便访问者查询确认ICP备案信息。部分省份管局要求,例如江苏省,需要在互联网信息服务下方添加版权所有。详情请参见添加ICP备案号和版权处理

    2. (可选)ICP许可证。

      如果您的互联网信息服务属于经营性网站或App(通过互联网向上网用户有偿提供信息或者网页制作等服务活动),则需在ICP备案后申请经营性ICP许可证。详情请参见经营性备案

      说明

      弹性Web托管服务器不支持经营性备案。

    3. 公安联网备案。

      依据 《计算机信息网络国际联网安全保护管理办法》相关规定,各互联网信息服务在工信部备案成功后,需在开通之日起30日内登录全国互联网安全管理服务平台提交公安联网备案申请。详情请参见公安联网备案及注销

域名解析

申请域名后,您需要配置域名解析到 ALB 实例的DNS 名称,实现通过域名访问网站。

  1. 登录云解析DNS控制台

  2. 在左侧菜单栏点击公网DNS解析>权威域名解析,在权威域名解析页面的域名列表中找到目标域名,在右侧操作列中点击解析设置

  3. 在域名解析设置页签中点击添加记录,添加域名解析记录,将其解析到ALB实例的CNAME地址,然后单击确认

    配置项

    说明

    示例值

    记录类型

    选择域名指向的类型。此处选择CNAME

    CNAME

    主机记录

    根据域名前缀填写主机记录。以前面步骤申请的域名aliyunexample.com为例,您可以在输入框中填写www,代表对www.aliyunexample.com进行域名解析,您也可以在输入框中填写test,代表对test.aliyunexample.com二级域名进行域名解析。

    www

    记录值

    填写ALB的CNAME值,该值为 ALB 实例详情页面的基本信息部分的DNS 名称字段。

    image

    alb-w***zu.cn-hangzhou.alb.aliyuncsslb.com

    TTL

    域名的更新周期,保留默认值。

    10分钟

完成及清理

10

方案验证

一、通过访问页面,验证服务可用性

  1. 获取页面访问地址。

    1. 若您已配置域名,则使用域名访问,例如:http://test.aliyunexample.com

    2. 若您未配置域名,则可使用ALB的公网IP进行访问。该地址位于ALB实例详情可用区模块中的弹性公网 IP 列。例如:http://100.***.***.1

      image

  2. 通过浏览器访问页面地址,检查是否可以正常访问到示例应用。若页面显示如下图所示内容,则表明服务已经成功启动并处于正常运行状态。image (1)

二、通过ECS停机模拟服务器故障,验证服务高可用

完成多服务器配置后,可以通过停止任意一个服务器来模拟故障情况,以验证在部分服务器不可用时服务的可用性。

  1. 登录ECS管理控制台。在左侧导航栏,选择实例与镜像>实例。在顶部菜单栏,选择与实例相同的地域。

  2. 从列表中选择任意一个ECS实例,在其右侧操作列中点击更多>实例状态>停止。在弹出的停止实例页面中,选择普通停机模式,然后单击确定image

  3. 等待实例状态变为已停止,再次通过浏览器访问页面地址,确认服务仍然可以正常访问。打开应用型负载均衡(ALB)控制台,点击相应的实例ID进入详情页面,再点击监控图表,查看健康检查。此时可以观察到负载均衡实例的健康服务器数量从两台减少为一台。

    image (3)

上述步骤能够验证负载均衡ALB的正确性和可靠性,确保即使在出现故障的情况下,系统仍能稳定运行并提供高可用的服务。

三、通过主备切换,验证数据库高可用

  1. 访问RDS实例列表,在顶部选择相应的地域,然后点击实例的ID进入详情页面。

  2. 基本信息页面,查看并记录当前主数据库和备用数据库所在的可用区。image (4)

  3. 在左侧导航栏中,选择服务可用性,在实例可用性区域,点击主备库切换。在弹出的对话框中选择立即切换,然后单击确定以执行切换操作。image

  4. 待主备状态在可用区间完成切换后,通过浏览器访问应用程序负载均衡器(ALB)实例的DNS名称,确认服务仍然可以正常访问。再次查看RDS实例的基本信息页面,此时可以观察到主数据库与备用数据库所在的可用区已经互换位置。image (1)

以上步骤验证了RDS实例的高可用性配置能够确保在主备切换过程中服务连续性不受影响,并且数据的一致性和可靠性得到保障。

清理资源

在本方案中,您创建了2台云服务器ECS实例、1个应用型负载均衡ALB实例、6个交换机、1个专有网络VPC、1个云数据库RDS MySQL高可用版实例。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用:

  1. 释放2台云服务器ECS实例:

    登录ECS控制台,在实例页面,找到目标实例,然后在操作列选择216更多-竖向..png>释放设置,根据界面提示释放实例。

  2. 删除安全组:

    登录ECS控制台,在网络与安全选项下,找到目标安全组,然后在操作列单击删除,按照界面提示释放实例。

  3. 释放1个云数据库RDS(高可用版):

    登录RDS管理控制台,在实例列表页面,找到目标集群,然后在操作列中选择更多>释放

  4. 释放1个应用型负载均衡ALB实例:

    登录应用型负载均衡控制台实例页面,找到目标ALB实例,然后在操作列选择216更多-竖向..png>释放,按照界面提示释放实例。

  5. 释放6台交换机:

    登录专有网络控制台,在交换机页面,找到目标交换机,然后在操作列单击删除,按照界面提示释放实例。

  6. 释放1个专有网络VPC:

    登录专有网络控制台,在专有网络页面,找到目标VPC,然后在操作列单击删除,按照界面提示释放实例。

  7. 如果您配置了域名解析,请进行以下操作进行清理:

    1. 登录云解析DNS控制台

    2. 在左侧菜单栏点击公网DNS解析>权威域名解析,在权威域名解析页面的域名列表中找到目标域名,在右侧操作列中点击解析设置

    3. 在记录列表中找到目标记录,点击删除

一键部署

35

https://www.aliyun.com/solution/tech-solution/hablog

方案概览

业务的持续稳定可服务,决定着企业对客户的服务质量,是企业发展的基础。而应用部署的高可用架构对于业务的稳定与发展起着至关重要的作用,本方案从企业上云最基础的需求出发,面向可能遇到的单点故障风险,介绍了“业务上云高可用架构”方案设计,为您演示:

  • 如何搭建一个跨可用区的高可用架构系统

  • 搭建完成后,通过模拟故障,观察网站的可用性

方案架构

本架构采用单地域双可用区部署,将业务系统、数据库部署在2个不同可用区,实现了可用区级故障灾备能力,从而保证了业务的连续性。同时,该架构还利用专有网络VPC、交换机和跨可用区安全组等基础设施,实现了私有网络下的系统通信。

方案提供的默认设置完成部署后在阿里云上搭建的高可用架构如下图所示。实际部署时您可以根据资源规划修改部分设置,但最终形成的运行环境与下图相似。

image

本方案的技术架构包括以下基础设施和云服务:

基础设施和云服务

说明

1个专有网络VPC

为应用型负载均衡ALB、云服务器ECS、云数据库RDS等云资源构建云上私有网络。

6个交换机

按照经典架构设计6台交换机,3个子网平面(公网平面、业务平面、数据平面),分别部署在2个可用区,提供基本的网络分段和隔离功能。

  • 公网平面:ALB所在平面,承载应用对公网提供的统一服务入口。

  • 业务平面:2台ECS所在平面,承载应用服务内部组件之间的交互。

  • 数据平面:1对RDS主备节点所在平面,承载数据库的存储、访问。

1个安全组

用于限制专有网络VPC下云服务器ECS的网络流入和流出规则。

2台云服务器ECS

用于部署示例应用程序。本方案需要2台ECS实例,要求同地域、同VPC、不同可用区(即与网络规格在同一个地域,选择交换机所在的2个可用区,用于实现跨可用区高可用)。

1个公网应用型负载均衡ALB

将公网访问流量分发到不同云服务器ECS,通过流量分发扩展应用系统的服务能力,通过消除单点故障提升应用系统的可用性。支持配置后端服务器组自动弹性伸缩。公网ALB通过EIP提供公网服务能力。

1个云数据库RDS MySQL高可用版

为业务系统提供数据服务。本方案需要高可用版的 RDS MySQL 1台,要求与ECS同地域、同VPC,对应相同的可用区。

1个域名(可选)

为应用提供可访问的已备案域名。

1个云解析 DNS (可选)

配置域名解析到 ALB 实例的DNS 名称,实现通过域名访问网站。

部署准备

10

开始部署前,请按以下指引完成账号申请、账号充值等准备工作。

准备账号

  1. 如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。

  2. 为阿里云账号充值。本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。如果确定任何一个云资源采用按量付费方式部署,账户余额都必须大于等于100元。

10

一键部署基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,模板是描述基础设施和架构的蓝图,通过ROS模板可自动化地完成云资源的创建和配置,提高资源的创建和部署效率。本方案提供的ROS模板完成资源的创建和配置内容包括

  • 创建2台云服务器ECS实例,以实现服务跨可用区的高可用。

  • 创建1个专有网络VPC。

  • 创建6台交换机,为了实现高可用,您需要将云服务器等资源尽可能分布在多个可用区,规避单可用区故障造成的服务不可用。

  • 创建1个高可用的云数据库RDS MySQL。

  • 创建1个公网类型的应用型负载均衡ALB并配置服务器组和监听,从而实现这个专有网络VPC下的2台云服务器ECS对外的公网访问和流量分发。

一键部署

  1. 打开一键部署模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板。

    说明

    ROS控制台默认处于您上一次访问控制台时的地域,请根据您创建的资源所在地域修改地域后再执行下一步。

  2. 配置参数页面完成以下配置(本教程以华东1(杭州)为例)后,单击下一步:检查并确认

    配置项

    参数

    说明

    示例值

    ECS配置

    可用区

    为每个ECS实例选择一个可用区,并确保两个ECS实例位于不同的可用区。

    可用区 J、可用区 K

    实例规格

    根据ECS实例的架构、分类选择相应的规格配置。

    ecs.e-c1m2.large

    实例密码

    ECS实例账号的密码。

    RDS 数据库配置

    RDS实例规格

    云数据库RDS实例的规格。

    mysql.x2.medium.2c

    RDS数据库账号

    PolarDB MySQL实例的数据库账号和密码。

    RDS数据库密码

    其他配置

    是否开通 CDT

    开通成功后需继续将云产品升级至CDT计费,赠送200 GB/月公网流量,其中20 GB/月可用于全球地域(含中国内地),180 GB/月仅限非中国内地地域使用,可抵扣云服务器ECS、弹性公网IP等按流量计费实例产生的公网流量,超出部分采用阶梯计费。

    自定义。

  3. 在资源配置预览页面,确认模板参数以及费用之后,单击创建

  4. 资源栈信息页面的状态显示为创建成功时表示一键配置完成。

配置域名(可选)

说明

如果您仅希望体验方案,无需配置域名,可以跳过此步骤。

如果您希望将该方案部署到生产环境。需要完成以下操作:

  • 需要使用独立域名,且域名必须经过 ICP 备案。

  • 域名按照要求添加解析记录。

域名申请和备案

  1. 创建域名信息模板并实名认证。

    1. 登录阿里云域名控制台

    2. 在左侧导航栏单击信息模板,在信息模板页面单击创建新信息模板

      1

    3. 根据界面提示,完成域名持有者信息填写,单击提交

      展开查看填写说明。

      参数

      个人

      企业/组织

      域名持有者类型

      选择个人

      选择企业/组织

      信息填写方式

      选择是否自动关联您的阿里云账号信息。

      说明

      如果您使用子账号登录域名控制台,则页面中没有此参数,您需手动填写域名持有者信息。

      域名联系人(中文)

      填写域名联系人名称,通常是公司的技术人员作为域名联系人。

      所属区域

      选择真实有效的通讯地址。

      选择与营业执照上一致的区域。

      说明

      如果无法选择省市信息,建议您更换浏览器或更换网络环境。

      通讯地址(中文)

      填写真实有效的通讯地址。

      填写与营业执照上一致的通讯地址。

      邮编

      填写通讯地址所在地的邮政编码。

      填写企业所在地的邮政编码。

      电子邮箱

      填写域名联系人的电子邮箱,填写完成后请单击输入框下方的点击进行邮箱验证,进行验证。

      说明
      • 建议不要使用test@test.club等新顶级域名后缀邮箱,避免域名订单长时间处于处理中状态,错失域名抢注等机会。

      实名认证上传材料填写样例请参见如下:

    4. 阿里云域名控制台的左侧导航栏的信息模板中找到待查看的信息模板,查看实名认证状态

      说明

      域名实名认证资料的审核通常在1个工作日内可以完成,部分可能需要3~5个工作日,请您耐心等待审核结果。

  2. 购买域名

    1. 查询域名。

      1. 登录阿里云域名注册

      2. 在阿里云域名注册页面的搜索框中,搜索您想要注册的域名以及域名后缀,单击查询域名

        1

    2. 加入域名清单。

      1. 对于查询结果为未注册的域名,单击加入清单

        加入清单

      2. 域名清单中确认已添加的域名,单击立即购买

    3. 确认订单信息。

      1. 确认订单页面,选择域名的购买年限和域名所有者类型。

        确认订单

        说明

        若您注册的是“.gov.cn”后缀域名,域名持有者类型只能为企业

      2. 选择已完成实名认证的域名持有者信息模板。

    4. 选择支付方式后,单击立即支付

      完成支付后,域名注册订单会短暂的显示为处理中状态,待订单状态变为成功,域名即注册成功。

  3. ICP备案前准备

    1. (可选)前置审批。

      新闻类、出版类、药品和医疗器械类、文化类、广播电影电视节目类、教育类、医疗保健类、网络预约车、电子公告类等行业的互联网信息服务,需联系当地机关办理对应的前置审批手续。各类行业对应的办理机关及手续类型请参见前置审批

    2. 管局规则。

      了解ICP备案所在地域的管局规则,根据管局要求准备ICP备案的材料。详细信息请在各地区管局备案规则中单击对应省份查看。

  4. 提交ICP备案

    1. 填写信息进行校验。

      阿里云ICP代备案管理系统,根据界面提示,按要求填写主办单位信息和网站/App信息等,系统将根据您所填信息,自动校验是否可以进行ICP备案。

    2. 阿里云初审。

      提交ICP备案初审订单后,订单状态为阿里云审核中,阿里云将会在1个工作日左右进行审核,具体以实际审核时间为准。

      image

    3. (可选)邮寄资料。

      说明

      阿里云初审后如果需要您邮寄资料,审核人员会通知您。如果您在初审时未收到需要邮寄资料的相关通知,则无需邮寄资料,ICP备案流程将进入下一个阶段。

    4. 工信部短信核验。

      当需要验证的手机号收到工信部发出的验证码短信后,您需在收到核验短信的24小时内,访问工信部备案管理系统进行短信核验。

      说明

      建议通过手机移动数据(关闭WiFi连接)进行短信核验。

      1. 进入工信部备案管理系统,单击短信核验

      2. 填写短信核验信息。

        短信核验页签下,根据下方要求填写短信验证码、手机号码、证件号码后6位等信息,填写完成后单击提交,系统将进行自动审核。

        短信核验项

      3. 确认短信核验结果。

        • 如系统提示您的短信核验已全部完成,该请求将提交管局审核,说明您的ICP备案订单已完成短信核验操作。

          说明

          短信核验成功后,您的ICP备案订单将直接进入管局审核,工信部不会下发短信通知。短信核验结果会在24小时内同步至阿里云,您可前往阿里云ICP代备案管理系统我的备案中查看。

          核验完成

        • 如系统提示您的短信核验完成,请等待其他核验人进行短信核验,说明您的ICP备案订单中还有其他需要验证的手机号码,请联系其他负责人及时完成核验。

          还有一个人没有核验

    5. 管局审核。

      订提交管局后订单为待提交管局状态,阿里云审核专员将会在1个工作日左右将您的订单提交至管局审核,具体以实际提交时间为准

      各省管局审核时间不同,实际审核时长会根据ICP备案场景有所不同,一般为1~20个工作日,具体以实际审核时间为准。管局审核通过后表示您的ICP备案即已完成,审核结果会发送至您的手机和邮箱。

  5. ICP备案后操作

    1. 添加ICP备案号及版本所有 。

      ICP备案成功后,您需要在互联网信息服务底部添加备案号和跳转至工信部的链接,以便访问者查询确认ICP备案信息。部分省份管局要求,例如江苏省,需要在互联网信息服务下方添加版权所有。详情请参见添加ICP备案号和版权处理

    2. (可选)ICP许可证。

      如果您的互联网信息服务属于经营性网站或App(通过互联网向上网用户有偿提供信息或者网页制作等服务活动),则需在ICP备案后申请经营性ICP许可证。详情请参见经营性备案

      说明

      弹性Web托管服务器不支持经营性备案。

    3. 公安联网备案。

      依据 《计算机信息网络国际联网安全保护管理办法》相关规定,各互联网信息服务在工信部备案成功后,需在开通之日起30日内登录全国互联网安全管理服务平台提交公安联网备案申请。详情请参见公安联网备案及注销

域名解析

申请域名后,您需要配置域名解析到 ALB 实例的DNS 名称,实现通过域名访问网站。

  1. 登录云解析DNS控制台

  2. 在左侧菜单栏点击公网DNS解析>权威域名解析,在权威域名解析页面的域名列表中找到目标域名,在右侧操作列中点击解析设置

  3. 在域名解析设置页签中点击添加记录,添加域名解析记录,将其解析到ALB实例的CNAME地址,然后单击确认

    配置项

    说明

    示例值

    记录类型

    选择域名指向的类型。此处选择CNAME

    CNAME

    主机记录

    根据域名前缀填写主机记录。以前面步骤申请的域名aliyunexample.com为例,您可以在输入框中填写www,代表对www.aliyunexample.com进行域名解析,您也可以在输入框中填写test,代表对test.aliyunexample.com二级域名进行域名解析。

    www

    记录值

    填写ALB的CNAME值,该值为 ALB 实例详情页面的基本信息部分的DNS 名称字段。

    image

    alb-w***zu.cn-hangzhou.alb.aliyuncsslb.com

    TTL

    域名的更新周期,保留默认值。

    10分钟

验证及清理

15

方案验证

一、通过访问页面,验证服务可用性

  1. 获取页面访问地址。

    1. 若您已配置域名,则使用域名访问,例如:http://test.aliyunexample.com

    2. 若您未配置域名,则可使用ALB的公网IP进行访问。该地址位于ALB实例详情可用区模块中的弹性公网 IP 列。例如:http://100.***.***.1

      image

  2. 通过浏览器访问页面地址,检查是否可以正常访问到示例应用。若页面显示如下图所示内容,则表明服务已经成功启动并处于正常运行状态。image (1)

二、通过ECS停机模拟服务器故障,验证服务高可用

完成多服务器配置后,可以通过停止任意一个服务器来模拟故障情况,以验证在部分服务器不可用时服务的可用性。

  1. 登录ECS管理控制台。在左侧导航栏,选择实例与镜像>实例。在顶部菜单栏,选择与实例相同的地域。

  2. 从列表中选择任意一个ECS实例,在其右侧操作列中点击更多>实例状态>停止。在弹出的停止实例页面中,选择普通停机模式,然后单击确定image

  3. 等待实例状态变为已停止,再次通过浏览器访问页面地址,确认服务仍然可以正常访问。打开应用型负载均衡(ALB)控制台,点击相应的实例ID进入详情页面,再点击监控图表,查看健康检查。此时可以观察到负载均衡实例的健康服务器数量从两台减少为一台。

    image (3)

上述步骤能够验证负载均衡ALB的正确性和可靠性,确保即使在出现故障的情况下,系统仍能稳定运行并提供高可用的服务。

三、通过主备切换,验证数据库高可用

  1. 访问RDS实例列表,在顶部选择相应的地域,然后点击实例的ID进入详情页面。

  2. 基本信息页面,查看并记录当前主数据库和备用数据库所在的可用区。image (4)

  3. 在左侧导航栏中,选择服务可用性,在实例可用性区域,点击主备库切换。在弹出的对话框中选择立即切换,然后单击确定以执行切换操作。image

  4. 待主备状态在可用区间完成切换后,通过浏览器访问应用程序负载均衡器(ALB)实例的DNS名称,确认服务仍然可以正常访问。再次查看RDS实例的基本信息页面,此时可以观察到主数据库与备用数据库所在的可用区已经互换位置。image (1)

以上步骤验证了RDS实例的高可用性配置能够确保在主备切换过程中服务连续性不受影响,并且数据的一致性和可靠性得到保障。

清理资源

您可以使用ROS一键删除创建的云资源,避免继续产生费用。

  1. 登录ROS控制台

  2. 在左侧导航栏,选择资源栈

  3. 资源栈页面的顶部选择部署的资源栈所在地域,找到资源栈,然后在其右侧操作列,单击删除

  4. 删除资源栈对话框,选择删除方式释放资源,然后单击确定,根据提示完成资源释放。

  5. 如果您配置了域名解析,请进行以下操作进行清理:

    1. 登录云解析DNS控制台

    2. 在左侧菜单栏点击公网DNS解析>权威域名解析,在权威域名解析页面的域名列表中找到目标域名,在右侧操作列中点击解析设置

    3. 在记录列表中找到目标记录,点击删除