2016-11-15 266 views
1

您可以在实例上执行的大多数操作都是同步的 - 例如,如果您发送stop request,它将立即运行并且程序将阻塞,直至完成。但是,只需安排稍后重新启动即可。等待EC2实例重新启动

有没有办法访问实例的计划,以知道计划重新启动,或以其他方式等待重新启动完成?

回答

3

如果您发送的停止请求,将立即跑过去,程序会阻塞,直到它完成

事实并非如此。当您发出ec2:StopInstance请求时,实例将从running移至stopping状态。但是你的程序不会阻塞。该请求立即返回更新的实例状态。如果要确定EC2实例最终处于stopped状态的时间,则需要使用ec2:DescribeInstances轮询EC2实例状态。

至于重新启动请求,一旦请求,重新启动几乎立即发生。正如您的链接所述,如果一个Linux实例在4分钟内没有重新启动,AWS最终会强制重新启动。

由于在EC2实例硬件中发生了重新启动,因此EC2实例的状态不会从running更改。没有rebooting状态。除EC2实例控制台日志中的监视消息之外,没有机制可以确定EC2实例的操作系统何时启动和/或完成其重新启动。

你可以做的最好的事情是发出重新启动请求,并假设/希望它在接下来的几分钟内重新启动。

作为替代方案,你可以停止和重新启动实例:

  1. 发出停止请求,
  2. 等待实例停止,
  3. 问题开始请求,
  4. 等待要运行的实例。
+0

对,谢谢。开始/停止方法需要花费另一个计费时间,所以我想我只是试着计时。再次感谢! – Timst