华为云实战:基于WordPress的企业网站上云与高可用架构部署

华为云实践:企业网站高可用上云部署全记录(WordPress + LAMP + ELB + AS)

📌 背景介绍

某企业计划将业务网站部署在华为云上,作为云架构师,需要根据以下业务需求设计并实施方案:

  1. 数据与业务分离:数据节点与业务节点分开部署。
  2. 弹性伸缩:可针对不同业务量动态调整服务器个数。
  3. 流量分发:自动将流量分发到多台服务器。
  4. 状态监控:使用云监控服务实时监控业务状态。

🏗️ 方案设计

根据需求,本次实践采用以下华为云服务组合:

  • 业务节点:弹性云服务器(ECS)
  • 数据节点:关系型数据库(RDS)
  • 网络基础:虚拟私有云(VPC)
  • 动态调整:弹性伸缩(AS) + 镜像服务(IMS)
  • 流量分发:弹性负载均衡(ELB)
  • 状态监控:云监控服务(CES)

基础拓扑逻辑:用户请求 -> EIP -> ELB(分发) -> ECS集群(由AS动态管理) <-> RDS(数据库);CES 负责全局监控。


🛠️ 详细实施步骤

第一阶段:基础网络与资源准备

1. 登录华为云
  • 访问华为云官网,登录账号。
  • 进入控制台,将区域切换为 华东-上海一。
2. 创建虚拟私有云(VPC)
  • 进入网络控制台,创建VPC。
  • 名称 :vpc-姓名(如 vpc-gqd)
  • 网段 :192.168.0.0/16
  • 子网名称:subnet-姓名,网段:192.168.0.0/24。
3. 创建并配置安全组
  • 在网络控制台创建安全组(如 sg-gqd)。
  • 注意 :实验环境为了方便后续操作,入方向规则可暂时"全部放通"。实际生产环境务必遵循最小化放通原则。
4. 购买弹性云服务器(ECS)
  • 计费模式:按需计费
  • 区域:华东-上海一,可用区随机分配
  • 规格 :通用计算型 2vCPUs | 4GB(x86架构)
  • 镜像:公共镜像 CentOS 7.6 64bit (10GiB)
  • 系统盘:高IO 40GB
  • 网络:选择刚创建的VPC和安全组
  • 弹性公网IP:现在购买,全动态BGP,按带宽计费,2Mbit/s
  • 登录凭证:密码(自定义)
  • 高级配置:开启云监控详细监控。
5. 购买云数据库 RDS
  • 计费模式:按需计费
  • 区域:华东-上海一
  • 引擎:MySQL 8.0
  • 实例类型:主备
  • 存储:SSD云盘,40GB
  • 性能规格 :通用型 2核 | 4GB
  • 网络:选择自己创建的VPC、子网和安全组。
  • 密码:自定义并牢记。
  • 创建完成后,记录数据库的内网IP地址。

第二阶段:部署LAMP环境与WordPress

1. 登录ECS并安装LAMP

使用CloudShell登录ECS(确保安全组放通22端口),依次执行以下命令:

bash

bash 复制代码
yum install epel-release
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum repolist all | grep php
yum-config-manager --enable remi-php74
yum install -y httpd php php-fpm php-server php-mysql mysql
2. 配置httpd服务

bash

bash 复制代码
# 编辑配置文件
vi /etc/httpd/conf/httpd.conf

按 shift+g 跳到最后一行,按 i 进入编辑模式,添加 ServerName localhost:80,按 ESC 后输入 :wq 保存退出。

3. 部署WordPress

上传WordPress安装包(如 wordpress-5.2.3-zh_CN.zip)到服务器,执行:

bash

bash 复制代码
unzip wordpress-5.2.3-zh_CN.zip -d /var/www/html
cd /var/www/html/
chmod -R 777 /var/www/html
systemctl start httpd.service
systemctl start php-fpm.service
systemctl status httpd      # 确认状态为 active (running)
systemctl status php-fpm    # 确认状态为 active (running)
systemctl enable httpd      # 设为开机自启
systemctl enable php-fpm    # 设为开机自启

在浏览器输入ECS的EIP,看到Apache测试页说明LAMP环境安装成功。

4. 配置WordPress数据库
  • 返回RDS控制台,登录数据库,新建数据库 wordpress。
  • 在浏览器访问 http://ECS_IP/wordpress,填写数据库信息:
    • 数据库名:wordpress
    • 用户名:root
    • 密码:RDS设置的密码
    • 数据库主机:填写RDS的内网地址(非常重要,不能填公网)
    • 表前缀:默认 wp_
  • 提交后,设置站点标题、管理员账号密码,完成WordPress安装。

第三阶段:构建高可用与弹性架构

1. 制作私有镜像(IMS)
  • 将已部署好WordPress的ECS关机。
  • 进入镜像服务IMS,创建私有镜像。创建方式选择"系统盘镜像",选择该ECS,命名为 ims-gqd。
  • 等待镜像状态变为"正常",然后将原ECS开机。
2. 创建弹性负载均衡(ELB)
  • 进入ELB控制台,购买共享型负载均衡。
  • 网络类型:IPv4 公网,绑定之前解绑的EIP(或新购EIP)。
  • 所属VPC与子网:选择之前创建的。
  • 配置监听器:添加监听器,前端协议 TCP,端口 80。
  • 配置后端服务器组 :创建新组 server_group-gqd,分配策略选"加权轮询算法",暂时不添加服务器,完成ELB创建。
3. 配置弹性伸缩(AS)
  • 创建伸缩配置 :
    • 计费模式:按需计费。
    • 名称:as-config-gqd。
    • 镜像:选择刚刚创建的 ims-gqd。
    • 规格:s7.large.2 (2vCPUs | 4GB)。
    • 安全组:选择之前创建的 sg-gqd。
    • 弹性公网IP:不使用(因为通过ELB对外提供服务,后端服务器无需公网IP)。
    • 登录方式:密码。
  • 创建弹性伸缩组 :
    • 名称:as-group-gqd。
    • 最大实例数:3,期望实例数:2,最小实例数:1。
    • 选择刚才创建的伸缩配置。
    • 网络:选择VPC和子网。
    • 负载均衡 :勾选"使用弹性负载均衡",选择创建的ELB和后端服务器组 server_group-gqd,后端端口 80。
    • 实例移除策略:释放(弹性公网IP选择"释放",磁盘选择"删除")。
    • 健康检查方式:负载均衡健康检查。
  • 添加伸缩策略 :
    • 策略1(扩容):告警策略。触发条件:CPU使用率最大值 >= 60%,连续出现3次,增加1个实例,冷却时间300秒。
    • 策略2(缩容):告警策略。触发条件:CPU使用率最大值 <= 20%,连续出现3次,减少1个实例,冷却时间300秒。

第四阶段:验证与监控

1. 访问测试
  • 返回ELB控制台,查看ELB绑定的弹性公网IP。
  • 在浏览器输入该EIP,成功打开WordPress首页,说明负载均衡与弹性伸缩已生效。
2. 资源监控(CES)
  • 进入云监控服务CES,可以查看监控大屏、告警信息以及主机监控(CPU、内存、磁盘等指标)。
  • 由于安装了Agent,可以深入到具体的ECS查看详细的运行状态,及时处理故障。

第五阶段:资源清理(实验结束必做)

为了防止持续扣费,实验结束后需按顺序清理资源:

  1. 删除弹性伸缩(AS)------ 会自动释放其管理的ECS实例。
  2. 删除弹性云服务器(ECS)。
  3. 删除云数据库(RDS)。
  4. 删除私有镜像(IMS)。
  5. 删除弹性负载均衡(ELB)。
  6. 删除虚拟私有云(VPC)。
  7. 删除安全组。

💡 实践总结与踩坑提示

  1. 网络互通 :WordPress配置数据库时,必须填写RDS的内网IP,因为ECS和RDS在同一VPC内,通过内网互通不仅速度更快,而且免流。
  2. 安全组策略:实验为了方便选择了全部放通,生产环境一定要按需放通端口(如仅放通80、22等)。
  3. AS与ELB联动:弹性伸缩组必须正确绑定负载均衡的后端服务器组,这样AS新创建的ECS才能自动挂载到ELB上对外服务。
  4. 镜像前置条件:制作镜像前必须先关机,否则可能导致数据不一致;镜像创建完毕后记得把原机器开机。
  5. 成本控制:华为云按需计费虽然灵活,但长期运行成本较高,实验完成后务必彻底清理资源。

希望这份笔记能帮到正在学习华为云架构的你!如果有疑问欢迎在评论区交流。

相关推荐
上海云盾-高防顾问4 分钟前
边缘验签是什么
运维·服务器·网络
fruge40 分钟前
SSH、RDP、VNC不必各开一个客户端:Next Terminal用Web入口统一管理远程资产和会话记录
运维·前端·ssh
中屹指纹浏览器svip1 小时前
什么是设备数字特征追踪?
运维
Dxy12393102161 小时前
Linux 服务器 vi 命令怎么使用
linux·运维·服务器
叼烟扛炮1 小时前
Linux 学习笔记(十五):进程的魔法 fork 与 僵尸孤儿
linux·运维·服务器
manageengine2 小时前
PHP2Shell 事件复盘:企业应该如何自查、修复与规模化处置
运维·安全·php
Initialize293082 小时前
Kafka 消息越堆越多、消费越来越慢?五步查清消费积压
运维
时间售卖铺2 小时前
MySQL 表的约束
运维·数据库·mysql·云原生
广州工博科技2 小时前
SAP Joule for Consultants 如何为自动化与集成项目提供支持?
运维·自动化
Acrellea2 小时前
数据中心这台新变压器,让配电房的电表全失效了
运维·能源