综合实践:企业网站上云部署实践
综合实践:企业网站上云部署实践
一、背景与方案设计
1.1 业务需求
- 数据节点与业务节点分离
- 支持动态调整服务器数量(弹性伸缩)
- 自动流量分发到多台服务器(负载均衡)
- 使用云监控服务监控业务状态
1.2 解决方案
| 需求 | 解决方案 | 使用的华为云服务 |
|---|---|---|
| 分离数据与业务节点 | 业务用 ECS,数据库用 RDS | ECS、RDS、VPC |
| 动态调整服务器数量 | 弹性伸缩(AS) | AS、镜像服务 IMS |
| 自动流量分发 | 负载均衡 | ELB |
| 监控业务状态 | 云监控 | CES |
1.3 拓扑图(文字描述)
- 用户 → 弹性公网IP → ELB(负载均衡器)→ 多台业务 ECS(弹性伸缩组)→ 共享 RDS 数据库
- ECS 位于 VPC 内,安全组控制访问
二、配置步骤(核心流程)
2.1 创建虚拟私有云(VPC)
- 区域:上海一
- 名称:
vpc-xxx - 网段:默认(如 192.168.0.0/16)
- 子网:自动创建
2.2 创建并配置安全组
- 本实验为了方便,全部放通(生产环境应最小化开放)
2.3 购买弹性云服务器(业务节点)
参数要点:
- 规格:2vCPU、4GB
- 镜像:CentOS 7.6 64bit
- 网络:选择创建的 VPC 和安全组
- 公网 IP:现在购买,按带宽计费 2Mbit/s
2.4 购买 RDS 实例(数据节点)
参数要点:
- 引擎:MySQL 8.0
- 规格:通用型 2核4GB
- 网络:与 ECS 相同 VPC
- 密码:自定义,需记录
⚠️ 记录 RDS 的内网 IP 地址,后续 WordPress 配置需要。
三、搭建 LAMP 环境与安装 WordPress
3.1 登录 ECS(CloudShell 或 SSH)
# 使用 CloudShell 或 SSH 登录sshroot@<ECS弹性公网IP>3.2 安装 LAMP 环境(命令解析)
# 安装 EPEL 仓库yuminstallepel-release-y# 安装 Remi 仓库(获取新版 PHP)yum-yinstallhttps://rpms.remirepo.net/enterprise/remi-release-7.rpm# 安装 yum 工具集yum-yinstallyum-utils# 列出 PHP 版本yum repolist all|grepphp# 启用 PHP 7.4 仓库yum-config-manager--enableremi-php74# 安装 Apache、PHP、MySQL 客户端等yuminstall-yhttpd php php-fpm php-server php-mysql mysql✅代码解析:
epel-release:扩展的 EPEL 软件源。remi-release-7.rpm:Remi 源,提供较新 PHP 版本。yum-config-manager --enable:启用特定仓库。httpd:Apache Web 服务器。php-mysql:PHP 连接 MySQL 的扩展。
3.3 配置 Apache
# 编辑 httpd.confvi/etc/httpd/conf/httpd.conf# 在文件末尾添加(按 shift+g 跳转到末尾,按 i 进入编辑)ServerName localhost:80# 按 ESC,输入 :wq 保存退出3.4 下载并解压 WordPress
# 下载 WordPress 安装包wget-chttps://hciecloud.obs.cn-north-4.myhuaweicloud.com/wordpress-5.2.3-zh_CN.zip# 解压到 Web 根目录unzipwordpress-5.2.3-zh_CN.zip-d/var/www/html# 进入目录cd/var/www/html# 授权(生产环境不建议 777)chmod-R777/var/www/html3.5 启动服务并设置开机自启
# 启动 Apachesystemctl start httpd.service# 启动 PHP-FPMsystemctl start php-fpm.service# 查看状态systemctl status httpd# 设置开机自启systemctlenablehttpd systemctlenablephp-fpm✅验证:浏览器访问http://<ECS公网IP>,出现 Apache 测试页则成功。
3.6 创建 WordPress 数据库(RDS)
登录 RDS 实例(通过数据管理服务或 MySQL 客户端),执行:
CREATEDATABASEwordpress;3.7 配置 WordPress
浏览器访问http://<ECS公网IP>/wordpress,按提示填写:
- 数据库名:
wordpress - 用户名:
root - 密码:RDS 密码
- 数据库主机:RDS 内网 IP 地址(如
192.168.0.10:3306) - 表前缀:默认
完成安装后登录 WordPress 后台。
四、配置高可用:负载均衡 + 弹性伸缩
4.1 解绑 ECS 的公网 IP(准备使用 ELB)
后续访问不再直接通过 ECS IP,而是通过 ELB 的公网 IP。
4.2 创建并配置弹性负载均衡(ELB)
参数:
- 实例类型:共享型
- 网络类型:IPv4 公网
- 弹性公网 IP:使用刚才解绑的 EIP
- 监听器:HTTP / 80 端口
- 后端服务器组:暂不添加(等待弹性伸缩自动添加)
4.3 制作镜像(IMS)
将已安装 WordPress 的 ECS 关机,然后创建私有镜像:
- 创建方式:系统盘镜像
- 镜像源:选择该 ECS
- 镜像名称:
ims-wordpress
镜像用于弹性伸缩自动创建相同配置的 ECS。
4.4 配置弹性伸缩(AS)
4.4.1 创建伸缩配置
- 镜像:使用刚创建的私有镜像
- 规格、VPC、安全组与原 ECS 一致
- 不分配公网 IP
4.4.2 创建弹性伸缩组
- 关联伸缩配置
- 关联负载均衡器(选择前面创建的 ELB)
- 设置最小/最大实例数(如最小1,最大5)
4.4.3 添加伸缩策略(基于 CPU 使用率)
| 条件 | 动作 |
|---|---|
| CPU 使用率 ≥ 60% | 增加 1 个实例 |
| CPU 使用率 ≤ 20% | 减少 1 个实例 |
4.5 验证
- 等待几分钟,弹性伸缩组自动创建 2 个实例(取决于策略)。
- 查看 ELB 后端服务器组,自动添加了这些实例。
- 浏览器访问ELB 的公网 IP,应能看到 WordPress 首页。
五、监控与删除资源
5.1 云监控(CES)
- 查看主机监控指标(CPU、内存、磁盘)
- 查看告警记录
5.2 删除资源顺序(避免残留计费)
- 弹性伸缩组(及伸缩实例)
- 弹性伸缩配置
- 负载均衡器 ELB
- 私有镜像
- 弹性云服务器 ECS
- 云数据库 RDS
- 安全组
- 虚拟私有云 VPC
六、代码解析总结
| 命令/操作 | 作用 |
|---|---|
yum install epel-release | 添加 EPEL 扩展源 |
yum-config-manager --enable remi-php74 | 启用 PHP 7.4 仓库 |
systemctl enable httpd | 设置 Apache 开机自启 |
unzip wordpress.zip -d /var/www/html | 解压到 Web 目录 |
chmod -R 777 /var/www/html | ⚠️ 临时授权,生产应使用更细粒度权限 |
| 创建 RDS 数据库 | 分离数据节点 |
| 制作私有镜像 | 弹性伸缩快速克隆环境 |
| ELB + AS 联动 | 自动分发流量 + 自动扩缩容 |
七、总结重点(面试/考试/实践核心)
✅ 架构设计要点
- 业务与数据分离:ECS 只跑应用,RDS 专门存数据。
- 无状态应用:WordPress 配置指向 RDS,使 ECS 可随时替换。
- 负载均衡:消除单点故障,分发流量。
- 弹性伸缩:自动应对业务高峰/低谷,节省成本。
✅ 关键服务作用
| 服务 | 作用 |
|---|---|
| VPC | 隔离网络环境 |
| 安全组 | 虚拟防火墙(控制访问) |
| ECS | 运行网站应用 |
| RDS | 托管数据库,免运维 |
| ELB | 流量入口,健康检查 |
| AS | 自动增减 ECS 实例 |
| IMS | 保存标准镜像,用于扩容 |
| CES | 监控 + 告警 |
✅ 最佳实践提醒
- 安全组:只开放必要端口(80、443、22),不要全放通。
- 数据库:使用内网连接,不暴露公网。
- 镜像:系统盘镜像应包含完整的应用配置。
- 弹性伸缩:需要结合负载均衡的健康检查,确保新实例可被正确访问。