WordPress 基于亚马逊云的部署实践(四)
本文继续 WordPress 基于亚马逊云的部署实践(三)中的部署进展,开始部署负载均衡器以及 Auto Scaling 组。开始部署前,再次启动之前停止的 EC2 实例,为后续部署负载均衡器进行准备。
负载均衡器部署
Application Load Balancer 是 AWS 中构建现代应用程序架构的关键组件,它提供了灵活性、性能和可用性,使应用程序能够应对不断增长的流量和需求。接下来,开始在云平台上构建负载均衡服务。创建目标组 wordpress-target-group ,选择目标类型为实例类型。VPC 选择之前创建好的 wordpress vpc,IP 地址类型为 IPV4,协议版本选为 HTTP1。目标的运行状况检查协议为 HTTP,检查路径为“/”。点击下一步,开始注册目标。
注册目标选择我们创建好的 wordpress 实例,点击右下角的创建目标组对该目标组进行创建。
接下来开始创建名为 wordpress-alb 的负载均衡器。其中模式选择为面向互联网,IP 地址类型为 IPv4。VPC 选择之前创建好的 WordPress-vpc,子网选择 WordPress-subnet-public1-cn-north-1a 和 WordPress-subnet-public2-cn-north-1b 两个共有子网。安全组选择之前创建好的 WordPress-Project 安全组以及默认的 default 安全组。侦听器选择 HTTP:80 端口,其目标组选择刚刚创建好的 wordpress-target-group。最后点击右下角的创建负载均衡器开始创建。
创建好负载均衡器后,在控制台上可以看到该负载均衡器的详细信息。其中,DNS 名称 wordpress-alb-1439451417.cn-north-1.elb.amazonaws.com.cn ,就是我们可以用来访问的地址。在浏览器中访问,可以看到 wordpress 的页面。
弹性伸缩服务部署
AWS Auto Scaling 是 Amazon Web Services(AWS)提供的一项服务,旨在帮助用户自动管理其应用程序和计算资源的伸缩,以应对不断变化的工作负载需求。该服务可以自动增加或减少计算资源,以确保应用程序具有所需的性能和可用性,同时最小化资源浪费。Auto Scaling 使用户能够以自动、智能的方式管理其 AWS 资源,从而提高应用程序的性能、可用性和成本效益。它是构建高度弹性和自适应应用程序架构的关键工具。
以下是在亚马逊云平台上配置 Auto Scaling 服务的步骤。
创建 EC2 启动模板。
启动模板允许预定义实例启动配置,包括 AMI(Amazon Machine Image)、实例类型、存储、网络配置和安全组规则等。创建名为 wordpress-ec2-launch-templete 的模板,这里可以勾选 Auto Scaling 指导,方便我们进行配置。
应用程序和操作系统镜像,选择我们之前创建好的 wordpress-base-ami。实例类型和密钥对选择之前配置 EC2 实例时使用的配置。安全组选择 WordPress-Project。存储卷大小选择 40GB。确认相关信息无误后,点击右下角的创建启动模板进行创建。
创建 Auto Scaling Group
创建名为 wordpress-ec2-autoscaling-group 的 Auto Scaling 组,启动模板选择创建好的 wordpress-ec2-launch-templete。
选择实例启动项。根据架构中的设计,需要将实例部署在位于不同可用区的两个私有子网中。如下图所示,需要指定的 vpc 为 WordPress-vpc,子网为 WordPress-subnet-private1-cn-north-1a 和 WordPress-subnet-private2-cn-north-1b。
配置高级选项。此处将 Auto Scaling 组附加到现有的负载均衡器,选择目标组为之前创建好的 wordpress-target-group 目标组。
配置组大小和扩展策略。设置组大小所需容量为 2,最小容量为 2,最大容量为 4。扩展策略选择目标跟踪扩展,指标类型平均 CPU 利用率,目标值为 50%。
为了能够及时了解服务的运行情况,选择为 Auto Scaling 组添加 SNS 消息通知,定义创建的 SNS 主题为 wordpress-autosaling-topic。点击下一步检查所有信息,如果没有问题,即可进行创建。
创建完成后,我们可以在负载均衡器的目标组中看到新添加了两个实例目标。为了对该弹性伸缩服务进行验证,我们可以去 EC2 服务的控制台,强行停止或者终止实例,然后检查负载均衡器后端目标组的伸缩情况,以及检查 SNS 是否可以发送消息到指定邮箱。经过测试发现,当终止所有实例后,弹性伸缩服务可以重新启动两个 EC2 实例来保证负载均衡器正常调用 wordpress 服务。
评论