【问题标题】:AWS EC2 Auto scaling philosophyAWS EC2 自动扩展理念
【发布时间】:2022-01-23 19:29:56
【问题描述】:

你好!

我刚开始对 AWS 进行调查,但其中一个概念对我来说似乎不清楚。基于此,我想寻求帮助以了解功能。

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

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

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

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

感谢您对我的旅程的帮助。

问候, 梅维斯。

【问题讨论】:

  • 如果您是云新手,最好选择像 ECS fargate 这样的托管服务,而不是直接使用 ec2 实例。你的问题是一个有点宽泛的话题。
  • 在 Auto Scaling 组中启动新实例的最快方法是创建一个包含所有预加载软件的 AMI。这样,它可以在启动后立即开始使用。或者,您可以编写一个在新实例首次启动时运行的用户数据脚本,该脚本可以配置该实例。如果配置需要很长时间,您可以使用Amazon EC2 Auto Scaling lifecycle hooks - Amazon EC2 Auto Scaling 来表示它何时准备好接受流量。

标签: amazon-web-services amazon-ec2 automation autoscaling


【解决方案1】:

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

简而言之,您可以从当前的 EC2(主机 php)生成一个 AMI(亚马逊机器映像),并为您的自动扩展组创建一个启动配置/启动模板。

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

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

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

【讨论】:

    猜你喜欢
    • 2014-01-25
    • 2019-07-17
    • 2018-08-20
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2014-11-06
    • 2017-11-14
    相关资源
    最近更新 更多