【问题标题】:Self-terminating EC2 instance from autoscaling group in Amazon来自 Amazon 中的自动扩展组的自终止 EC2 实例
【发布时间】:2016-04-19 01:17:13
【问题描述】:

我正在我的 EC2 实例上运行自定义事务任务。在许多情况下,由在该实例上运行的特殊进程决定是否关闭一个实例。终止应该由实例本身完成,因为 Autoscaling Group 不知道数据处理何时完成。以下步骤是否符合 AWS 的理念?

  1. 使用选项创建 AMI:“关闭行为:终止”。
  2. Autoscaling 组使用“Protect From Scale In”选项创建一个新实例。
  3. EC2 调用命令上的自定义进程:

    $ sudo shutdown -P now
    

    在适当的时间终止一个实例。

正确吗?或者也许 AWS 有一些工具可以做到这一点,例如。发出特殊信号来终止实例?

谢谢

【问题讨论】:

  • 为什么要“防止缩小”?这将阻止实例终止,这是您不希望它执行的操作?
  • 这将防止实例被 Autoscaling Group 终止。终止应该由实例自己完成,因为 Autoscaling Group 不知道 EC2 上的数据处理何时完成。
  • 为什么要使用自动缩放组?
  • 用于“放大”。实例是 ZeroMQ 的工作者。
  • 您确定何时缩减的规则是什么?实例是否总是在完成某些处理后立即自我终止,还是应该使用 CloudWatch 警报来触发缩减?

标签: amazon-web-services amazon-ec2


【解决方案1】:

我认为该过程存在一个问题:

在第 1 步中,“关闭行为:终止”选项不是 AMI 级别设置。这是一个启动时间设置,适用于在自动缩放组之外启动的实例。

在自动缩放组中,没有选项可以配置具有等效于“关闭行为:终止”的启动配置。据推测,ASG 实例必须在事件扩展期间终止。

简单的方法是让实例调用AWS CLI terminate-instances 命令:

aws ec2 terminate-instances --instance-ids i-xxxxxxxx

您需要从AWS Metadata 获取实例ID 才能运行terminate-instances 命令。

【讨论】:

  • 这将杀死实例,但自动缩放将在几分钟内替换实例
  • 是的。我知道这是期望的行为。你在这里使用一个伸缩组是因为你想要伸缩。
猜你喜欢
  • 2016-08-17
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 2020-05-09
  • 2014-07-05
  • 1970-01-01
相关资源
最近更新 更多