首页 > 解决方案 > AWS Autoscaling 延迟启动和终止

问题描述

我有以下场景,需要知道在 AWS 中实现它的最佳方法。

我有一个 EC2 自动缩放组,该组最初将设置为 0,在手动运行过程之后触发 SSM 文档,将 ASG 设置为 3,但是我需要每个实例在启动 3 个中的下一个之前完全启动并运行发射。

当前设置同时启动所有 3 个实例,当它们形成一个集群时,它们同时启动似乎会导致问题,它们需要等待一些设置/缓存操作发生,然后另一个节点才能安全加入。

除此之外,没有节点要运行超过 20 天,因此在实例上设置了最大实例年龄,我正在使用生命周期挂钩来优雅地终止实例,但我需要实现的是当每个节点到达它的 20 天,它不会开始其生命周期挂钩以终止,直到其替换节点运行。

我正在尝试确定我可以依赖 ASG 来实现多少,以及我应该将多少分配给 ASG 外部的自动化,例如 Lambda。

任何建议表示赞赏,

标签: amazon-web-servicesamazon-ec2autoscalinglifecycle-hook

解决方案


最大实例生命周期不会一次替换超过 10% 的 ASG 中的总实例(因此在您的情况下,一次永远不会超过 1 个): https ://docs.aws.amazon.com/autoscaling/ ec2/userguide/asg-max-instance-lifetime.html

对于初始启动,如果它是 1 次,您可以手动将其增加几分钟,或者让您的启动脚本一次增加一个,并在两者之间进行睡眠(步骤函数可能适用于此)


推荐阅读