企业网站上云部署实践

华为云企业网站上云部署实战:从零搭建高可用 WordPress(ECS+RDS+ELB+弹性伸缩+云监控全流程)

摘要 :作为一名云架构师,当企业提出"把业务网站搬到云上,还要高可用、可弹性伸缩"时,你会怎么设计方案?本文用一个完整的实验带你走一遍企业网站上云的全流程 :从网络规划(VPC)、安全组,到业务节点(ECS)与数据节点(RDS)分离部署,再到搭建 LAMP + WordPress,最后通过弹性负载均衡 ELB 实现流量分发、弹性伸缩 AS 实现按业务量动态调整服务器数量、云监控 CES 实现业务状态监控。图文并茂,保姆级操作步骤,照着做就能跑通!


一、背景介绍

某企业将公司业务网站部署在华为云上,该业务有以下需求,作为云服务架构师,该怎么建议客户来做方案设计呢?

  • 数据节点业务节点分开部署在不同的服务器上;
  • 可针对不同业务量动态调整服务器个数
  • 可自动将流量分发到多台服务器;
  • 使用云监控服务来监控业务状态。

二、方案设计

1. 实验配置表

需求 解决方案 涉及服务
将数据节点与业务节点分开部署 搭建网站:购买云服务器和 RDS 实例分别作为业务节点和数据节点。由虚拟私有云为弹性云服务器提供网络资源 弹性云服务器 ECS、虚拟私有云 VPC、关系型数据库 RDS
针对不同业务量动态调整服务器个数 配置特性:根据业务需求和策略采用弹性伸缩,使用基础业务节点的镜像动态地调整作为业务节点的弹性云服务器实例个数,保证业务平稳健康运行 弹性伸缩 AS、镜像服务 IMS
自动将流量分发到多台服务器 配置特性:使用负载均衡将访问流量自动分发到多台业务节点弹性云服务器,扩展应用系统对外的服务能力,实现更高水平的应用程序容错性能 弹性负载均衡 ELB
监控业务状态 配置特性:使用云监控服务来监控业务状态 云监控服务 CES

2. 方案拓扑图

整体架构为:用户请求 → 弹性公网 IP(EIP)→ 弹性负载均衡(ELB)→ 多台弹性云服务器(ECS,承载 WordPress 业务)→ 关系型数据库(RDS,MySQL 数据节点)。弹性伸缩(AS)负责按业务量动态调整 ECS 数量,云监控(CES)负责监控整体业务状态,所有资源都部署在 VPC1 私有网络中。

三、配置步骤

1. 登录华为云

打开华为云官网:https://www.huaweicloud.com,单击右上角"登录"按钮。

输入对应的用户名和密码后,单击"登录"按钮。

登录成功后,在华为云官网首页单击右上角"控制台"按钮,进入管理控制台。

2. 创建虚拟私有云 VPC

进入控制台,切换区域为:华东-上海一,找到"虚拟私有云 VPC",进入网络控制台。

单击"创建虚拟私有云"。

设置虚拟私有云创建信息如下后,单击"立即创建"。参数设置如下:

  • 区域:华东-上海一
  • 名称 :vpc-name(name 为学员姓名,此处示例为 vpc-gqd
  • 其它参数:可默认

返回控制台,确认创建成功。

3. 创建并配置安全组

在网络控制台,找到 访问控制 > 安全组 > 创建安全组

创建安全组,名称示例为 sg-gqd,规则选择"开放全部端口"后立即创建。

⚠️ 注意 :本实验为方便后续操作全部放通,实际使用需最小化放通(如仅放行 80/443/22 等必要端口)。

4. 购买弹性云服务器 ECS

在华为云控制台的服务列表中找到"弹性云服务 ECS"。

单击"购买弹性云服务器",参数配置参考如下(基础配置):

  • 计费模式:按需计费
  • 区域:华东-上海一
  • 可用区:随机分配
  • CPU 架构:x86 计算
  • 规格:通用计算型,2 vCPUs | 4 GB
  • 镜像:公共镜像 CentOS 7.6 64bit(10GiB)
  • 系统盘:高IO,40G

选择公共镜像 CentOS 7.6 64bit(10GiB)。

注:CentOS 7 已于 2024 年 6 月 30 日停止服务,实际生产环境建议选择 Huawei Cloud EulerOS 等替代方案。主机安全服务可免费试用 1 个月(基础防护:口令检测、漏洞检测等),如需企业版(漏洞修复、病毒查杀、等保必备)为 ¥0.18/台/小时。

系统盘选择"高IO",大小 40GB(当前 IOPS 上限 2,120,IOPS 突发上限 5,000)。

网络配置

  • 网络:选择自己创建的虚拟私有云(vpc-gqd)
  • 安全组:选择自己创建的安全组(sg-gqd)
  • 弹性公网 IP:现在购买,全动态 BGP,按带宽计费,2Mbit/s

高级配置

  • 云服务器名称 :自定义(示例 ecs-gqd
  • 登录凭证:密码,ECS 登录密码自定义

确认配置无误后,阅读并同意《镜像免责声明》,单击"立即购买"按钮。返回云服务器列表,查看已创建好的 ECS。

5. 购买云数据库 RDS

返回华为云控制台,在服务列表中找到"云数据库 RDS",点击"购买"。

配置数据库实例参数如下,配置完成后单击"立即购买":

  • 计费模式:按需计费
  • 区域:华东-上海一
  • 实例参数 :rds-name(可自定义,示例 rds-gqd),MySQL,版本 8.0,主备,SSD 云盘
  • 性能规格:通用型 2核 | 4 GB(练习时选用最小规格,具体业务按需求选择)
  • 虚拟私有云/内网安全组:选择自己创建的,密码自行设置
  • 其它参数:默认

在"实例选配"中确认性能规格(独享型 2 vCPUs | 4 GB,建议连接数 4,000,TPS|QPS:580|11,597)与存储空间(40GB,赠送等量备份空间)。

设置实例名称(rds-gqd)、管理员密码(root 账户),并选择自己创建的虚拟私有云 vpc-gqd、子网 subnet-gqd(192.168.0.0/24)、安全组 sg-gqd,数据库端口默认 3306。

高级配置保持默认(参数模板 Default-MySQL-8.0、时区 UTC+08:00 北京/重庆/香港/乌鲁木齐)。

确认购买信息无误后,单击"提交"按钮(配置费用 ¥1.17/小时)。

任务提交成功!您的数据库实例 rds-gqd 已经开始创建。

返回云数据库 RDS 列表,创建需等待 6-10 分钟,等待实例状态为"正常"。

单击数据库实例名称,查看数据库内网 IP 地址并记录(示例:192.168.0.39,端口 3306),后续 WordPress 连接数据库需要用到。

6. 搭建 LAMP(Linux + Apache + MySQL + PHP)环境

返回云服务器 ECS 控制台,单击"远程登录"。

选择 CloudShell 登录,优势:操作更流畅,命令支持复制粘贴,支持浏览输出历史和多终端分区布局。

输入密码,点击"连接"(示例:区域华东-上海一,云服务器 ecs-gqd,公网 60.204.213.80,端口 22,用户名 root,密码认证)。

请确保安全组已放通 CloudShell 连接实例使用的端口(默认使用 22 端口)。

依次输入如下命令安装 LAMP 环境,并开启相应服务:

bash 复制代码
[root@ecs-gqd ~]# yum install epel-release
[root@ecs-gqd ~]# yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@ecs-gqd ~]# yum -y install yum-utils
[root@ecs-gqd ~]# yum repolist all | grep php
[root@ecs-gqd ~]# yum-config-manager --enable remi-php74
[root@ecs-gqd ~]# yum install -y httpd php php-fpm php-server php-mysql mysql

运行结果,显示 "Complete!" 即安装成功。

输入以下命令进行编辑配置 httpd 服务:

bash 复制代码
[root@ecs-gqd ~]# vim /etc/httpd/conf/httpd.conf

在打开的配置文件界面,单击快捷键 shift+g 进入配置文件最后一行。按 i 进入编辑模式,移动光标至配置文件末尾,回车换行,键入配置 ServerName localhost:80,单击快捷键 ESC 退出编辑模式,输入 :wq,回车执行保存并退出配置文件。

上传本地下载好的 WordPress 软件(示例:wordpress-5.2.3-zh_CN.zip),输入如下命令,将 WordPress 安装包解压到目录 /var/www/html

bash 复制代码
[root@ecs-gqd ~]# unzip wordpress-5.2.3-zh_CN.zip -d /var/www/html
[root@ecs-gqd ~]# cd /var/www/html/
[root@ecs-gqd html]# ls
wordpress

输入如下命令,赋予文件所在目录读写权限:

bash 复制代码
[root@ecs-gqd html]# chmod -R 777 /var/www/html

输入如下命令,开启 httpd 和 php-fpm 服务:

bash 复制代码
[root@ecs-gqd html]# systemctl start httpd.service
[root@ecs-gqd html]# systemctl start php-fpm.service

输入如下命令,查看 httpd service 状态。httpd 状态为高亮显示的 active (running)

bash 复制代码
[root@ecs-gqd html]# systemctl status httpd

输入如下命令,查看 php-fpm service 状态。如下图所示,php-fpm 状态为高亮显示的 active (running)

bash 复制代码
[root@ecs-gqd html]# systemctl status php-fpm

输入如下命令,将 httpd、php-fpm 服务设为开机启动

bash 复制代码
[root@ecs-gqd html]# systemctl enable httpd
[root@ecs-gqd html]# systemctl enable php-fpm

在浏览器地址栏输入 ECS 的公网 IP,可以看到 Apache 的测试页面 "Testing 123...",说明 LAMP 环境已正常运行。

7. 创建 WordPress 数据库

返回数据库控制台,登录已创建好的 MySQL 数据库(rds-gqd)。

输入用户名和密码(用户名默认 root,密码输入购买 RDS 时设置的密码),点击"登录"(可先"测试连接",显示"连接成功"再登录)。

在数据库列表中点击"新建数据库",创建 WordPress 数据库:

  • 数据库名称:wordpress
  • 字符集:utf8mb4
  • Collation:utf8mb4_general_ci

数据库列表中出现 wordpress 数据库即创建成功。

8. 访问 WordPress 并进行相应配置

在浏览器地址栏中输入 http://ECS_IP/wordpress(ECS IP 替换成自己 ECS 的 EIP)地址访问 WordPress。

点击 "Let's go!" 按钮,进入 WordPress 数据库配置页面:

配置相关参数:

  • Database Name(数据库名):wordpress
  • Username(用户名):root
  • Password(密码):自己创建的数据库密码
  • Database Host(数据库主机) :填写数据库的内网地址(购买 RDS 章节记录的,如 192.168.0.39)
  • Table Prefix(表前缀):默认 wp_

点击 "Run the installation"(现在安装):

设置站点标题、用户名、密码及电子邮件后,点击 "Install WordPress":

  • Site Title(站点标题):企业上云部署实践
  • Username(用户名):admin
  • Password(密码):自行设置
  • Your Email(电子邮件):填写自己的邮箱

安装成功!点击 "Log In":

填写用户名和密码,登录网站:

登录成功,进入 WordPress 管理后台(Dashboard):

至此,WordPress 网站服务器和其后端数据库实例的初始化配置完成

9. 解绑弹性公网 IP

返回弹性云服务器控制台,将安装 WordPress 的 ECS 的弹性公网 IP 解绑(后续要把这个 EIP 绑定给负载均衡 ELB 使用)。

接下来,我们将为 WordPress 网站服务器配置负载均衡服务弹性伸缩服务

10. 创建和配置弹性负载均衡 ELB

为什么需要 ELB? 在企业现网中,为了能够提高应用服务器的可用性,通常我们不会只用一台服务器来承载业务,而是通过多台应用服务器来自动分担访问流量和扩/缩容服务器数量。通过配置弹性负载均衡服务 为网站提供自动访问流量分发,通过配置弹性伸缩服务来实现网站服务器自动调整数量的功能。

返回华为云控制台,在服务列表中找到"弹性负载均衡 ELB"。

单击"购买弹性负载均衡":

选择共享型负载均衡。参数配置如下:

  • 实例规格类型:共享型
  • 计费模式:按需计费
  • 区域:华东-上海一
  • 网络类型:IPv4 公网
  • 所属 VPC:自己创建的 VPC(vpc-gqd)和子网(subnet-gqd)
  • 弹性公网 IP:使用已有(选择刚解绑 ECS 的弹性 IP 60.204.213.80)
  • 名称 :elb-name(自定义,示例 elb-gqd

确认相关信息,点击"立即购买",信息确认无误后,点击"提交"。返回网络控制台,确认负载均衡实例的状态为运行中

单击负载均衡实例的名称,进入负载均衡控制台,单击"监听器",选择"添加监听器"。配置监听器的名称、协议和端口,完成后点击"下一步":

  • 名称:listener-gqd
  • 前端协议:TCP
  • 前端端口:80
  • 访问控制:允许所有 IP 访问

配置后端分配策略,分配策略类型选择加权轮询算法,其他保持默认即可,单击"下一步"(后端服务器组名称 server_group-gqd,后端协议 TCP)。

此处暂时不添加云服务器,点击"下一步"。确认配置无误后,点击"提交"。

此时,弹性负载均衡服务的基础配置已经完成,但是其后端服务器组内还没有云服务器。接下来我们将通过弹性伸缩服务的配置来动态调整负载均衡服务后端服务器组内的云服务器数量。

11. 制作镜像 IMS

返回云服务器控制台,将云服务器关机(制作镜像前需关机)。

返回华为云控制台,在服务列表中找到"镜像服务 IMS"。

点击"创建私有镜像",配置参数参考如下:

  • 区域:华东-上海一
  • 创建方式:系统盘镜像
  • 选择镜像源:云服务器,选择前面自己创建的云服务器(ecs-gqd)
  • 名称 :ims-name(自定义,示例 ims-gqd

配置名称(ims-gqd)、描述等,阅读并同意《镜像制作承诺书》和《镜像免责声明》。

点击"立即创建",确认配置后并提交。等待镜像的状态为正常 。镜像创建完成后可将云服务器开机

12. 配置弹性伸缩 AS

返回华为云控制台,在服务器列表中找到"弹性伸缩 AS"。

选择"创建弹性伸缩配置"。

设置伸缩配置信息如下后,单击"立即创建":

  • 计费模式:按需计费
  • 区域:华东-上海一
  • 名称:as-config-gqd
  • CPU 架构:x86 计算
  • 规格:通用计算型 s7.large.2(2 vCPUs | 4 GiB)
  • 镜像:选择刚创建的私有镜像 ims-gqd
  • 系统盘:高IO 40GiB
  • 安全组:选择前面自己创建的安全组 sg-gqd
  • 弹性公网 IP不使用(不使用公网 IP,仅作为私有网络中部署业务的云服务器)

⚠️ 注意:镜像选择刚创建的系统盘镜像;安全组选择前面自己创建的安全组,不使用公网 IP。

点击"立即创建"后,显示如下的伸缩配置(as-config-gqd)。

点击"创建弹性伸缩组"。

设置服务选项信息如下后,单击"立即创建":

  • 区域:华东-上海一
  • 可用区:勾选可用区1/2/3/4
  • 多可用区扩展策略:均衡分布
  • 名称:as-group-gqd
  • 最大实例数:3 台
  • 期望实例数:2 台
  • 最小实例数:1 台

选择刚才创建的伸缩配置 (as-config-gqd)和负载均衡器(elb-gqd),后续弹性伸缩服务会根据伸缩配置中的镜像模板在弹性负载均衡器中的后端服务器中动态调整云服务器数量。

  • 伸缩配置:as-config-gqd
  • 虚拟私有云:vpc-gqd(192.168.0.0/16)
  • 子网:subnet-gqd(192.168.0.0/24)
  • 负载均衡:使用弹性负载均衡 elb-gqd(共享型),后端云服务器组 server_group-gqd,后端端口 80,权重 1,IP 协议版本 IPv4
  • 实例移除策略:根据较早创建的配置较早创建的实例
  • 弹性公网 IP:释放(缩容活动时释放 EIP)------ 也可选择"不释放"仅解绑
  • 数据盘:不删除
  • 健康检查方式:负载均衡健康检查
  • 勾选协议后,单击"立即创建"

单击"查看伸缩策略"。

单击"添加伸缩策略",设置两条伸缩策略:

策略 1(扩容):CPU 最大值 >= 60%,增加一台弹性云服务器

  • 策略名称:as-policy-gqd
  • 告警规则:现在创建,as-alarm-gqd
  • 监控类型:系统监控
  • 触发条件:CPU 使用率,最大值 >= 60%
  • 监控周期:5 分钟,连续出现次数:3
  • 告警策略类型:简单策略
  • 执行动作:增加 1 个实例
  • 冷却时间:300 秒

策略 2(缩容):CPU 平均值 <= 20%,减少一台弹性云服务器

  • 策略名称:as-policy-gqd2
  • 告警规则:as-alarm-gqd2
  • 触发条件:CPU 使用率,最大值 <= 20%
  • 执行动作:减少 1 个实例
  • 冷却时间:300 秒

等待几分钟后,返回弹性伸缩组,观察伸缩实例变化情况,来判断伸缩策略是否为已启用。从下图可以看出,弹性伸缩服务已经完成了两个伸缩实例(云服务器)的创建

返回弹性负载均衡控制台,点击负载均衡名称 "elb-gqd",打开后端服务器组会发现,后端服务器组内加入了两台云服务器,而这两台云服务器正好就是刚才通过弹性伸缩服务创建的伸缩实例。

13. 验证负载均衡访问

至此,弹性伸缩和弹性负载均衡服务配置完成。我们会发现弹性伸缩服务将通过配置的监控策略来为弹性负载均衡的后端服务器组动态调整云服务器数量。

在上述部署 WordPress 网站应用时,我们是直接访问该云服务器的公网 IP 的,那么接下来,我们需要验证云服务器内部的网站应用是否能够通过负载均衡 IP 对外提供访问。

查看弹性负载均衡器 ELB 绑定的弹性 IP 地址(示例:60.204.213.80)。

在浏览器输入 ELB 新绑定的 EIP 地址,测试网站是否可以正常打开,如果正常打开说明通过负载均衡器 ELB,我们能够访问到由弹性伸缩扩容的后端服务器内的 WordPress 网站应用。至此,WordPress 网站的弹性伸缩和弹性负载均衡配置完成

14. 资源监控 CES

返回华为云控制台,在服务列表中,找到"云监控服务"然后打开。

在云监控服务界面,我们可以查看监控大屏信息,以此来获取全面的监控情况。

返回云监控服务界面,我们还可以查看业务的告警信息,及时处理故障。

除了上述基本功能外,我们还可以通过主机监控来查看云服务器的基本信息(需在 Linux 主机安装 Agent 才能采集内存使用率、磁盘使用率、网络流入/流出速率等指标)。

点击弹性云服务器的名称,即可进入到该云服务器的详细监控(CPU 使用率、CPU 空闲时间占比、iowait 状态占比等指标趋势)。

四、删除资源(实验结束后清理环境)

实验完成后,为避免持续产生费用,请按以下顺序删除资源:

  1. 删除弹性伸缩(先删除伸缩策略,再停用并删除伸缩组)
  2. 删除 ECS(弹性云服务器)
  3. 删除 RDS(云数据库)
  4. 删除镜像(私有镜像 IMS)
  5. 删除 ELB(弹性负载均衡,需先删除监听器/解绑 EIP)
  6. 删除 VPC(虚拟私有云)
  7. 删除安全组

五、总结

通过本次实验,我们完成了一个企业网站上云的高可用部署全流程,核心收获:

  1. 网络规划先行:VPC + 子网 + 安全组是云上业务的"地基",业务节点(ECS)与数据节点(RDS)分离部署,安全组按最小化原则放通端口。
  2. 计算与存储分离:ECS 承载 Web 业务(LAMP + WordPress),RDS 承载数据库(MySQL 8.0 主备),各自独立弹性伸缩。
  3. 高可用三板斧ELB 负责流量分发与健康检查、AS 按 CPU 阈值自动扩缩容(镜像 IMS 提供扩容模板)、CES 负责全局监控告警,三者配合实现了业务的高可用与弹性。
  4. 验证闭环:通过 ELB 的 EIP 访问 WordPress 成功,证明流量确实被分发到了由弹性伸缩动态创建的服务器上。

如果你也在学习云架构,建议亲自动手把每个步骤都做一遍,尤其是"镜像 + 弹性伸缩 + 负载均衡"这条链路,理解了它,就理解了云上高可用架构的核心。

RDS (云数据库)

  1. 删除镜像 (私有镜像 IMS)

  2. 删除 ELB (弹性负载均衡,需先删除监听器/解绑 EIP)

  3. 删除 VPC (虚拟私有云)

  4. 删除安全组

五、总结

通过本次实验,我们完成了一个企业网站上云的高可用部署全流程,核心收获:

  1. 网络规划先行:VPC + 子网 + 安全组是云上业务的"地基",业务节点(ECS)与数据节点(RDS)分离部署,安全组按最小化原则放通端口。
  2. 计算与存储分离:ECS 承载 Web 业务(LAMP + WordPress),RDS 承载数据库(MySQL 8.0 主备),各自独立弹性伸缩。
  3. 高可用三板斧ELB 负责流量分发与健康检查、AS 按 CPU 阈值自动扩缩容(镜像 IMS 提供扩容模板)、CES 负责全局监控告警,三者配合实现了业务的高可用与弹性。
  4. 验证闭环:通过 ELB 的 EIP 访问 WordPress 成功,证明流量确实被分发到了由弹性伸缩动态创建的服务器上。

如果你也在学习云架构,建议亲自动手把每个步骤都做一遍,尤其是"镜像 + 弹性伸缩 + 负载均衡"这条链路,理解了它,就理解了云上高可用架构的核心。

相关推荐
mengge.cloud13 小时前
0909华为云计算类综合服务小白实验教程
linux·运维·服务器·网络·华为云·云计算
暖核1 天前
华为云运维三件套实战:云审计 + 云监控 + 云日志完整操作指南
linux·运维·华为云
mengge.cloud1 天前
0909华为云网络类服务实践小白实验教程
linux·运维·服务器·网络·华为云·php
逐流人1 天前
华为云服务全景指南:从基础架构到运维实践
运维·华为云·云计算·云服务·ecs
March.s2 天前
深入理解华为云存储云服务:从云硬盘到云备份的全景指南
华为云
fb_123452 天前
华为云存储服务实战全解:EVS 挂载、快照救数据、OBS 管理、SFS 共享、CBR 备份还原(保姆级教程)
华为云
SatanII2 天前
华为云ECS实践:从创建、镜像制作到弹性伸缩完整实操指南
linux·运维·服务器·学习·centos·华为云
丨晨 丨2 天前
华为云“基建狂魔”养成记:从“删库跑路”到“原地复活”的硬核求生指南
华为云
容器魔方2 天前
议程一览 | 华为云亮相 KubeCon + CloudNativeCon China 2026
人工智能·云原生·容器·开源·华为云·云计算