AWS Auto Scaling 组是不是会在终止 EC2 之前关闭它的操作系统?

Posted

技术标签:

【中文标题】AWS Auto Scaling 组是不是会在终止 EC2 之前关闭它的操作系统?【英文标题】:Does an AWS auto scaling group shutdown the operating system of an EC2 before terminating it?AWS Auto Scaling 组是否会在终止 EC2 之前关闭它的操作系统? 【发布时间】:2019-05-30 10:27:53 【问题描述】:

有很多关于我们的服务在 Auto Scaling 组中运行时如何关闭的讨论。主要关注的是允许服务在实例终止之前执行一些任务。例如,如果我在 java 中的 spring 服务中添加了一个 destroy 方法,期望在实例终止之前调用该方法是否合理?

<bean class="com.github.moaxcp.service.Service" destroy-method="destroy">

在这种情况下,Service 将停止接受数据并将当前状态保存到 s3。

或者如果有一个 systemd 关闭脚本应该在实例终止之前运行。在这种情况下,将所有剩余的日志发送到 s3。

autoscaling guide 提到,当满足缩​​减策略时,会选择并终止 EC2。这是否意味着实例没有正常关闭?我们的服务能否在实例关闭之前完成一些任务?

EC2 Lifecycle 提供了有关终止功能的一些详细信息。它首先关闭实例,然后终止。在这种情况下,服务可能能够在停止之前完成一些任务。

从文档看来,当 EC2 实例直接终止时,它似乎会正常关闭,但当它被 ASG 终止时,它不会。这是真的?有没有关于这种行为的文档?

【问题讨论】:

投票关闭,因为这与 *** 无关。这里的问题应该和编程有关。这是关于服务器管理的,非常适合 serverfault.com。 实例会正常终止,但如果关闭时间过长则会被强制“关闭”。您可以运行一些快速关闭活动,但不要执行需要几分钟的操作。最好的方法是进行试验,看看你能取得什么成果。 @anothermh 也许吧?我不确定,因为作为开发人员我想知道我的应用程序是如何关闭的,而作为系统管理员我想知道操作系统是如何关闭的。我也在用 java 编程所有这些,只需要知道行为。 但是您没有编程问题,您有 AWS 问题。投票关闭看台。 【参考方案1】:

您有一个名为 Lifecycle Hooks 的东西,可让您在 Autoscaling 组启动或终止时执行自定义操作。挂钩响应横向扩展事件和缩减事件。

查看https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html了解更多信息。

【讨论】:

以上是关于AWS Auto Scaling 组是不是会在终止 EC2 之前关闭它的操作系统?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Auto Scaling 组源服务器

.bat 脚本在执行 AWS Auto Scaling 命令之前终止

AWS Auto Scaling - 在服务器终止前缩减规模等待 x 分钟

网络负载均衡器目标组中的 AWS Auto Scaling 目标

AWS:同一个 Auto Scaling 组中是不是可以有多个资源?

Auto Scaling 组 AWS 的内存利用率