华为云实践:企业网站高可用上云部署全记录(WordPress + LAMP + ELB + AS)
📌 背景介绍
某企业计划将业务网站部署在华为云上,作为云架构师,需要根据以下业务需求设计并实施方案:
- 数据与业务分离:数据节点与业务节点分开部署。
- 弹性伸缩:可针对不同业务量动态调整服务器个数。
- 流量分发:自动将流量分发到多台服务器。
- 状态监控:使用云监控服务实时监控业务状态。
🏗️ 方案设计
根据需求,本次实践采用以下华为云服务组合:
- 业务节点:弹性云服务器(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查看详细的运行状态,及时处理故障。
第五阶段:资源清理(实验结束必做)
为了防止持续扣费,实验结束后需按顺序清理资源:
- 删除弹性伸缩(AS)------ 会自动释放其管理的ECS实例。
- 删除弹性云服务器(ECS)。
- 删除云数据库(RDS)。
- 删除私有镜像(IMS)。
- 删除弹性负载均衡(ELB)。
- 删除虚拟私有云(VPC)。
- 删除安全组。
💡 实践总结与踩坑提示
- 网络互通 :WordPress配置数据库时,必须填写RDS的内网IP,因为ECS和RDS在同一VPC内,通过内网互通不仅速度更快,而且免流。
- 安全组策略:实验为了方便选择了全部放通,生产环境一定要按需放通端口(如仅放通80、22等)。
- AS与ELB联动:弹性伸缩组必须正确绑定负载均衡的后端服务器组,这样AS新创建的ECS才能自动挂载到ELB上对外服务。
- 镜像前置条件:制作镜像前必须先关机,否则可能导致数据不一致;镜像创建完毕后记得把原机器开机。
- 成本控制:华为云按需计费虽然灵活,但长期运行成本较高,实验完成后务必彻底清理资源。
希望这份笔记能帮到正在学习华为云架构的你!如果有疑问欢迎在评论区交流。