三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

综合实践:企业网站上云部署实践

综合实践:企业网站上云部署实践

综合实践:企业网站上云部署实践

一、背景与方案设计

1.1 业务需求

  • 数据节点与业务节点分离
  • 支持动态调整服务器数量(弹性伸缩)
  • 自动流量分发到多台服务器(负载均衡)
  • 使用云监控服务监控业务状态

1.2 解决方案

需求解决方案使用的华为云服务
分离数据与业务节点业务用 ECS,数据库用 RDSECS、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/html

3.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 删除资源顺序(避免残留计费)

  1. 弹性伸缩组(及伸缩实例)
  2. 弹性伸缩配置
  3. 负载均衡器 ELB
  4. 私有镜像
  5. 弹性云服务器 ECS
  6. 云数据库 RDS
  7. 安全组
  8. 虚拟私有云 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 联动自动分发流量 + 自动扩缩容

七、总结重点(面试/考试/实践核心)

✅ 架构设计要点

  1. 业务与数据分离:ECS 只跑应用,RDS 专门存数据。
  2. 无状态应用:WordPress 配置指向 RDS,使 ECS 可随时替换。
  3. 负载均衡:消除单点故障,分发流量。
  4. 弹性伸缩:自动应对业务高峰/低谷,节省成本。

✅ 关键服务作用

服务作用
VPC隔离网络环境
安全组虚拟防火墙(控制访问)
ECS运行网站应用
RDS托管数据库,免运维
ELB流量入口,健康检查
AS自动增减 ECS 实例
IMS保存标准镜像,用于扩容
CES监控 + 告警

✅ 最佳实践提醒

  • 安全组:只开放必要端口(80、443、22),不要全放通。
  • 数据库:使用内网连接,不暴露公网。
  • 镜像:系统盘镜像应包含完整的应用配置。
  • 弹性伸缩:需要结合负载均衡的健康检查,确保新实例可被正确访问。

← 返回列表