AWS EC2 自动扩展理念

AWS EC2 Auto scaling philosophy

你好!

我正开始研究 AWS,但其中一个概念对我来说似乎还不清楚。基于此,我想寻求有关功能理解的帮助。

我在 EC2 上安装了 PHP 上的 Web 应用程序。 我的应用程序负载很大,我需要使用负载平衡器以获得最佳性能。如何做和设置这很清楚。我的应用程序的代码托管在 Gitlab 上。

在 EC2 和负载均衡器设置之后,我想使用自动缩放。 所以,我需要使用自动缩放组。

主要问题:接下来我该做什么?据我所知,我需要以某种方式创建一个新实例,但我需要一个包含所有依赖项和源代码的实例的正确图像。 代码自动部署也是一个大问题。当新功能合并时,我需要 运行 GitLab 管道和交付代码以某种方式到新的 EC2。

那么我需要阅读和研究哪些内容才能自动将新代码部署到新的 EC2 实例? AWS 是否为此提供了一些工具?

感谢您对我旅程的帮助。

此致, 梅维斯

您可以从这个 link https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-from-instance.html 开始,它向您解释了如何基于 EC2 实例创建自动缩放组。

简而言之,您可以从当前的 EC2(主机 php)生成 AMI(Amazon 机器映像)并为您的自动缩放组创建启动 configuration/launch 模板。

接下来,您可以添加一个负载均衡器来将流量分配给这些实例,您可以将其与目标组和您的自动缩放组关联cihttps://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html

对于自动部署,您可以在管道中自动创建新的启动配置或从 S3 或 用户数据中的其他位置获取代码的最新版本 PHP部分。你可以使用 gitlab ci 或 CodeDeploy,它是这类东西的完美候选者

另请注意,自动缩放组是无状态的(create/terminate 个实例),您必须将图像和资产存储在共享位置 ,例如 S3、DB 或 EFS,因为如果实例不健康或被 ASG 终止,您可能会丢失数据。