2016-11-15 323 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