【问题标题】:Is there a way to STOP not TERMINATE instances using auto-scaling in AWS?有没有办法在 AWS 中使用自动缩放来停止而不是终止实例?
【发布时间】:2015-08-10 04:35:45
【问题描述】:

我正在考虑使用 AWS 自动扩展功能来根据各种性能指标(CPU 等)向上和向下扩展我的基础设施。我了解如何设置;但是,我不喜欢实例在缩小时终止而不是停止。这意味着当我扩大规模时,我必须从头开始使用新实例并重新安装我的软件等。我宁愿根据需要启动/停止我的实例,而不是创建/终止。有没有办法做到这一点?

【问题讨论】:

  • 大多数自动缩放用例遵循所需的软件在启动时引导(通过自动化安装)或预烘焙到源 AMI 中。听起来您可能使用不正确?
  • 是的,我可以在启动时引导它,但考虑到需要完成的软件和配置的数量(我已经测试过),这需要几分钟。我想我可能会构建自己的 AMI,其中所有软件都已经存在并已配置。我还没试过。
  • @user3712321 构建您自己的 AMI 并配置所有内容是自动缩放的标准做法,除非您使用 Elastic Beanstalk - 即使这样,也是很好的起点。

标签: amazon-web-services amazon-ec2


【解决方案1】:

不,无法停止 Auto Scaling 下的实例。当扩展策略触发删除实例时,Auto Scaling将始终终止该实例。

但是,这里有一些处理终止概念的想法......

选项 1:使用预配置的 AMI

您可以使用所需的软件、数据和设置来配置 Amazon EC2 实例。然后,在管理控制台中选择 EC2 实例和choose the Create Image action。这将创建一个新的 Amazon 系统映像 (AMI)。然后,您可以将 Auto Scaling 配置为在启动新实例时使用此 AMI。每个新实例都将包含完全相同的磁盘内容。

值得一提的是,EBS 从 AMI 启动速度非常快。它不是将整个 AMI 复制到启动磁盘,而是在“首次访问”时将其复制。这意味着新实例可以立即启动,而不是等待整个磁盘被复制。

选项 2:使用启动(用户数据)脚本

每个 Amazon EC2 实例都有一个 User Data 字段,可从实例访问。 A script can be passed through the User Data field,然后在实例启动时执行。该脚本可用于安装软件、下载数据和配置实例。

脚本可以做一些非常简单的事情,比如从源代码库下载配置脚本,然后执行脚本。这意味着机器配置可以集中管理和版本控制。想要更新您的应用程序?只需使用更新后的脚本启动一个新实例并丢弃旧实例(这比“更新”应用程序要容易得多)。

选项 3:向 Auto Scaling 组添加/删除实例

可以附加/分离特定实例,而不是使用 Scaling 策略启动/终止 Auto Scaling 组的实例。因此,您可以“模拟”自动缩放:

这需要您自己的代码,但它非常简单(基本上是两个 API 调用)。您将负责跟踪要附加/分离的实例。

【讨论】:

  • 谢谢约翰。选项 2 在我的情况下是不现实的,因为在启动时需要为每个实例完成大量的软件和配置。但是,预配置的 AMI 似乎可以工作。
  • 这个答案是无效的,因为它是 4 年前的,所以请检查 Noah 的另一个答案。
  • 仅供参考,hashicorp 的打包程序使烘焙自己的 AMI 变得非常容易,然后它可以集成到构建 - 更改源中,jenkins 制作了一个新的 ami
  • 谢谢乔希?。但是如果我之前分离的实例不可用(崩溃或终止)现在我没有任何东西可以添加到自动缩放中,你现在会做什么,基本上现在必须告诉自动缩放:“我的实例已经崩溃了新建一个”
【解决方案2】:

【讨论】:

  • 暂停扩展过程是指暂停 AWS 操作,如上面的 AWS 链接中所述。它不会暂停您的 EC2。上面的答案仍然正确,您无法让 AWS 自动扩展停止而不是终止您的实例。
  • @AstroTom 如果您暂停终止扩展过程,那么您可以停止实例而不终止它。
【解决方案3】:

将该实例添加到扩展保护,然后停止该实例,然后它不会删除您的实例,因为它具有扩展保护。

【讨论】:

    【解决方案4】:

    实际上,您有三个官方 AWS 选项来重启甚至停止属于 Auto Scaling 组的实例:

    • 将实例置于待机状态
    • 从组中分离实例
    • 暂停运行状况检查过程

    参考:https://aws.amazon.com/premiumsupport/knowledge-center/reboot-autoscaling-group-instance/

    【讨论】:

    • 如果您的备用 ec2 实例发生故障怎么办,然后自动缩放会创建新实例吗?
    猜你喜欢
    • 2018-09-22
    • 2021-04-20
    • 2015-03-18
    • 2013-01-13
    • 2017-03-17
    • 2018-12-09
    • 2021-03-17
    • 1970-01-01
    • 2020-04-13
    相关资源
    最近更新 更多