AWS 实例调度程序和自动缩放组

问题描述 投票:0回答:4

我为我的 AWS 账户配置了新的 AWS 实例调度程序 https://aws.amazon.com/answers/infrastruct-management/instance-scheduler/

问题似乎是,通过扩展组标记 ec2 实例,ec2 实例会正确停止,但由于我的扩展组将最小数量设置为 2,AWS 扩展组无论如何都会重新启动它们。

我不想将 Min number 设置为 0,只是因为在应用程序重新部署期间很有用。

如何让这2个服务正常工作?

amazon-web-services autoscaling
4个回答
3
投票

当您停止由 Auto Scaling 控制的 EC2 实例时,Auto Scaling 会将它们视为“不健康”,并将继续终止并替换它们。

您有 2 个选择。

选项 1: 在 EC2 实例停止时暂停 Auto Scaling 处理。通过这样做,Auto Scaling 不会关心您的 EC2 实例是否已停止,也不会终止它们。请记住在重新启动 EC2 实例后恢复处理。

但是,AWS Instance Scheduler 不会为您管理此操作,因此您需要找到另一种方法来安排 EC2 实例停止和重新启动。

选项 2: 将 Auto Scaling 组缩放至 0,然后再缩放至 2。这将导致终止您的 EC2 实例(当您不需要它们时)并重新创建它们(当您需要它们时)。仅当您的 EC2 实例是临时实例时,这才有效。

再次强调,AWS Instance Scheduler 不会为您管理此操作。 Auto Scaling 计划操作可能可以帮助您解决此问题。


1
投票

对于属于 AWS Auto Scaling 组的 AWS EC2 实例,您可以通过定义所需容量、最小、最大、重复计划、扩展频率等来创建用于缩减和扩展的计划操作。

见下图:

计划扩展可帮助您根据可预测的负载变化设置自己的扩展计划。例如,假设每周 Web 应用程序的流量在周三开始增加,周四保持较高水平,周五开始减少。您可以为 Amazon EC2 Auto Scaling 配置计划,以在周三增加容量并在周五减少容量。

要使用计划扩展,您需要创建计划操作。计划的操作将根据日期和时间自动执行。创建计划操作时,您可以指定扩展活动应发生的时间以及扩展操作的新的所需大小、最小大小和最大大小。您可以创建仅扩展一次或按循环计划扩展的计划操作。

参考:Amazon EC2 Auto Scaling 的计划扩展


0
投票

另一种选择是在 aws 实例调度程序之前和之后使用 asg 备用功能。这还可以让您在关机前使用同一个 Ami 进行工作。

所以高级解决方案如下:

  1. 使用 aws 实例调度程序定义 ec2 实例调度
  2. 定义 lambda 来获取关闭计划并在计划关闭之前将 ec2 置于待机模式。
  3. 定义 lambda 来获取启动计划并在 ec2 计划重启后使 ec2 实例脱离待机状态。

0
投票

2024 年更新:

AWS Instance Scheduler 现在支持通过标记来调度 AutoScaling 组。

有关信息,请参阅 https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/advanced-features.html

© www.soinside.com 2019 - 2024. All rights reserved.