动手实验 | 构筑高可用 WordPress 博客系统


  项目需求

某公司由于业务发展需要,需要在AWS上开发部署一个高可用的WordPress博客系统。客户要求该系统使用前后端分离设计,实现用最低的价格实现最高的性能。

  解决方案

1. 运营团队联系客户,确定采用的解决方案,以及交付时间。
2. 前端使用AWS的Route53、弹性负载均衡器(Elastic Loading Balancer)、AWS自动伸缩组(Auto Scaling Group)的组合;后端使用多区域(multi-AZ)的AWS RDS MySQL数据库,开启容量自动扩容功能。系统可以根据工作负载的高低变化,自动地增加或者减少使用EC2资源,确保无论有多少用户同时访问,都可以智能地使用最少数量的EC2资源,同时又能保证EC2和RDS MySQL出现故障的时候,可以快速的自动修复,将对系统的影响降到最低。

  作业步骤

本次采用AWS Console界面完成作业。
注意:根据项目的具体情况,可以采用不同的实施方法。比如使用命令行(CLI)部署、代码部署(CloudFomation、Terraform等)、以及其它开发语言(SDK)完成作业。

1. 构筑多区域的RDS MySQL数据库实例,同时启用存储自动扩展。创建成功后,记录下数据库实例的终端节点,数据库实例的用户名和密码,数据库的用户名和密码。
2. 创建一个供WordPress服务器使用的AMI。
■ 2.1 构筑用一台来制作AMI的EC2,设定用户数据代码等代码,启动该实例。
■ 2.2 该EC2实例启动之后,更改WordPress链接数据库的用户名和密码。
■ 2.2 使用该实例制作AMI
3. 制作一个启动模板(Launch Template)备用,使用上一步创建的AMI
4. 创建一个目标组(Target Group),目标类型指定为Application Load Balancer
5. 创建一个弹性负载均衡器,类型指定为(Application Load Balancer)
6. 创建一个自动伸缩组,设定所需最小容量为 2,最大容量为5,扩展策略的指标类型设定为平均CPU利用率,目标值设定为80%。在EC2面板查看并确定有两台EC2正常工作。
7. 进行压力和故障模拟测试,确定符合客户需求后,交付给客户使用。

注意: WordPress的安装配置以及测试工作本身,不在AWS认证考试范围之内。
现实环境中,如果没有相关的知识,可以让开发人员安装好WordPress之后,然后再制作启动模板。