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 之前关闭它的操作系统?的主要内容,如果未能解决你的问题,请参考以下文章
.bat 脚本在执行 AWS Auto Scaling 命令之前终止
AWS Auto Scaling - 在服务器终止前缩减规模等待 x 分钟
网络负载均衡器目标组中的 AWS Auto Scaling 目标