【问题标题】:When is an EC2 instance in "shutting down" state killed automatically?处于“关闭”状态的 EC2 实例何时会自动终止?
【发布时间】:2013-05-31 02:54:37
【问题描述】:

根据在Amazon EC2 Instance FAQ 找到的文档:

“处于“关闭”状态的实例比平时更长,最终将 由 Amazon EC2 服务中的自动化流程清理。 "

有人知道“比平时长”多长时间吗?实例在被自动杀死之前可以处于“关闭”状态多长时间?

我从 init.d 关闭脚本调用备份脚本,但是当它尝试压缩并将一个大目录 (500 MB) 复制到 S3 时,EC2 实例似乎在备份完成之前关闭。 (我在关机期间备份小目录时从未遇到过这个问题。)

我的 EC2 实例是否有可能因为处于“关闭”状态的时间过长而被自动终止?我可以安全地保持“关机”状态多久?

【问题讨论】:

  • 我不认为这些信息是公开的,也不是你可以控制的。您可能想通过在关机前复制大部分(如果不是全部)信息的方法来解决此问题。

标签: amazon-web-services amazon-ec2


【解决方案1】:

当您停止或终止 EC2 实例时,Amazon 会向操作系统发送软关闭请求,让它以干净、安全的方式结束。如果系统在短时间内(几分钟)内没有指示它正在关机,那么亚马逊会有效地拔下电源插头,强制关机。

我不知道亚马逊对这个软关闭宽限期有多长的任何承诺,因此我建议您不要假设或依赖特定的最低限度。即使 Amazon 今天为您提供 10 分钟的时间来获取一个实例,但如果明天他们对新实例有大量需求,他们也可以轻松地将其缩短到 3 分钟。

如果您需要在实例关闭之前进行重要的总结,则向实例发送信号(Web 请求或 ssh 命令),等待其完成任务,然后启动 EC2 关闭。

如果您使用的实例是 Amazon 可以随时关闭该实例的现场实例,那么请经常保存您的工作,以免在该实例突然终止时丢失大部分工作。

从我的 ServerFault 回复中复制的答案Is there a maximum shutdown for instances in Amazon EC2?

【讨论】:

  • Eric,我在发布问题后在 ServerFault 上找到了您的答案。感谢您重新发布您的答案!可能原因是亚马逊将“计费实例小时”定义为实例处于“运行”状态时,因此在“关闭”阶段尝试做实际工作被认为是作弊......
【解决方案2】:

这是受控关闭事件吗?您是在 EC2 实例本身内部还是在实例外部将其关闭?

在任何一种情况下,一旦您向 EC2 实例发出关闭信号,它就与发出“shutdown -h now”命令相同 - 在系统关闭之前您真的没有太多时间去做很多事情。

如果这是受控关闭,我建议在 init.d 关闭脚本之外找到另一种方法来运行该脚本。

【讨论】:

  • 是的,这是一个受控关闭,我正在从实例外部关闭它(使用 boto python 库。)据我了解,在典型的(非 AWS)Linux 服务器中,没有关闭超时的概念。服务器将执行所有 init.d 关闭脚本,无论它们需要多长时间,然后关闭。这就是为什么我惊讶地发现关闭 EC2 服务器有时间限制
  • 如果您从实例外部关闭它,也许您可​​以修改脚本来执行此操作:(1)SSH 进入盒子并运行您需要它的脚本(2)断开连接,并且然后发出 boto 关机命令。这行得通吗?
猜你喜欢
  • 2013-07-21
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 2012-05-19
  • 1970-01-01
  • 2011-09-13
相关资源
最近更新 更多