我为我的 AWS 账户配置了新的 AWS 实例调度程序 https://aws.amazon.com/answers/infrastruct-management/instance-scheduler/
问题似乎是,通过扩展组标记 ec2 实例,ec2 实例会正确停止,但由于我的扩展组将最小数量设置为 2,AWS 扩展组无论如何都会重新启动它们。
我不想将 Min number 设置为 0,只是因为在应用程序重新部署期间很有用。
如何让这2个服务正常工作?
当您停止由 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 计划操作可能可以帮助您解决此问题。
对于属于 AWS Auto Scaling 组的 AWS EC2 实例,您可以通过定义所需容量、最小、最大、重复计划、扩展频率等来创建用于缩减和扩展的计划操作。
见下图:
计划扩展可帮助您根据可预测的负载变化设置自己的扩展计划。例如,假设每周 Web 应用程序的流量在周三开始增加,周四保持较高水平,周五开始减少。您可以为 Amazon EC2 Auto Scaling 配置计划,以在周三增加容量并在周五减少容量。
要使用计划扩展,您需要创建计划操作。计划的操作将根据日期和时间自动执行。创建计划操作时,您可以指定扩展活动应发生的时间以及扩展操作的新的所需大小、最小大小和最大大小。您可以创建仅扩展一次或按循环计划扩展的计划操作。
另一种选择是在 aws 实例调度程序之前和之后使用 asg 备用功能。这还可以让您在关机前使用同一个 Ami 进行工作。
所以高级解决方案如下:
2024 年更新:
AWS Instance Scheduler 现在支持通过标记来调度 AutoScaling 组。
有关信息,请参阅 https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/advanced-features.html