华为云实战:基于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. 成本控制:华为云按需计费虽然灵活,但长期运行成本较高,实验完成后务必彻底清理资源。

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

相关推荐
是店小二呀1 小时前
AdGuard Home 部署实战:Linux/Windows 安装、DNS 配置与固定公网管理
linux·运维·windows
yulingfeng591 小时前
虚拟机开机时自动挂载目录
linux·运维·服务器
滕州市燕猫虎计算机科技工作室个体工商户1 小时前
查看Docker里的日志
运维·docker·容器
广州浮点FLOATLIC1 小时前
ANSYS许可证排队时怎样确认是模块还是并发数不足
运维·服务器·网络
JavaPub-rodert1 小时前
Docker Compose 实战:一键部署你的完整应用环境
运维·docker·容器
风哥2号2 小时前
数据库教程FGMT18‑Oracle‑EMCC智能化集中运维管理系统
运维·数据库·oracle
少司府2 小时前
Linux系统篇(一)指令篇·一:初识Linux及其基本指令
linux·运维·服务器·网络·阿里云·linux系统
天远API2 小时前
零信任架构实战:基于天远企业四要素验证构建自动化供应商准入网关
运维·人工智能·架构·自动化
考虑考虑12 小时前
docker compose环境变量替换
运维·后端·自动化运维