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

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

相关推荐
谷哥的小弟3 分钟前
CentOS Stream浴火重生
linux·运维·centos
程序员-Benothing1 小时前
Shell输入输出详解:read、echo、printf、颜色输出
linux·运维·服务器
和裕1 小时前
全纸结构重型纸箱能否满足 1 吨以上设备出口熏蒸豁免要求?通关合规性全解析
大数据·运维·网络·人工智能·算法
FPGA小徐1 小时前
从 NEMU 到 AbstractMachine:程序、运行时环境与 AM 完全解析
linux·运维·服务器
呉師傅2 小时前
得力P2500、M2500系列打印机硒鼓加粉及清零方法【纯享版】
运维·网络·windows·电脑
Sayai2 小时前
Elasticsearch 日志检索 DSL 实战:时间范围查询、字段去重、分钟级统计与最新日志获取
大数据·运维·elasticsearch·搜索引擎·日志分析
fb_123455 小时前
MySQL运维实战:备份恢复+主从复制+读写分离+MHA高可用(超详细手把手教程)
运维·mysql·oracle
..Dauntless..5 小时前
【Linux】进程地址空间初步理解
linux·运维·服务器
Julien20045 小时前
Docker 网络(一)
linux·运维·服务器·ssh·学习方法
字节跳动的猫6 小时前
LikeShop 积分体系全链路改造:获取规则、订单抵扣与积分商品兑换二开
运维·数据结构