0

我正在使用自动缩放组为我的应用程序添加和删除其他实例。我使用 CPU 利用率作为我的缩放参数,想知道当实例运行程序并且 CPU 利用率低于 65%(即阈值)时会发生什么。

它是等待实例完成程序还是在那一刻终止实例?如果它在那个时候终止实例,那么它可能会导致数据丢失/数据不一致。

任何帮助,将不胜感激。

4

3 回答 3

1

如果您希望在事件扩展期间阻止或延迟实例,您可以查看生命周期钩子

通过启用此自动缩放,可以发送特定实例操作即将发生(横向扩展或缩减)的通知。使用服务组合(例如 SNS、Lambda、SSM 等),您将能够以编程方式通知即将终止的实例,然后您可以采取任何必要的操作。

实例终止将等到自动缩放组确认它已完成,这将导致它被终止。此外,生命周期钩子将有一个超时,如果在超过超时时间之前没有收到确认,那么终止仍然会发生。

于 2020-08-15T07:01:18.577 回答
0

它是等待实例完成程序还是在那一刻终止实例。

可悲的是,我没有等待。ASG 在您的实例之外工作,不关心在您的实例上运行的任何程序。

话虽如此,您可以做的事情很少,其中一些描述如下:

一般来说,您应该将您的应用程序开发为无状态的。这意味着应用程序应该“意识到”它们可以随时终止。一种实现方法是使用外部存储系统,例如 S3 或 EFS,它们将在终端之间持久化数据。

另一种方法是使用终止保护。在这种情况下,应用程序将在处理开始时将其实例置于此状态,然后当计算完成时,终止保护将被移除。

于 2020-08-15T03:49:42.883 回答
0

我认为您正在寻找终止政策

看看这个链接:

https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#default-termination-policy

根据我的经验,无论实例运行什么,它都会被终止

于 2020-08-15T03:40:33.490 回答