AWS自动伸缩组是否在终止EC2的操作系统之前将其关闭?

时间:2019-01-03 19:56:20

标签: amazon-web-services amazon-ec2

关于服务在自动伸缩组中运行时如何关闭的讨论很多。主要关注的问题是允许服务在实例终止之前执行某些任务。例如,如果我在java中的spring服务中添加了destroy方法,是否可以期望该方法在实例终止之前被调用?

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

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

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

autoscaling guide提到当满足扩展策略时,将选择并终止EC2。这是否意味着该实例未正常关闭?在实例关闭之前,我们的服务能否完成某些任务?

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

从文档中可以看出,当EC2实例直接终止时,它将正常关闭,而在由ASG终止时,它将不会正常关闭。这是真的?是否有有关此行为的任何文档?

1 个答案:

答案 0 :(得分:1)

您拥有一个称为“生命周期挂钩”的东西,可以在Autoscaling组启动或终止时执行自定义操作。挂钩响应向外扩展事件和向外扩展事件。

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