“rebo​​ot”和“ec2-reboot-instances”之间的区别

调用EC2实例的命令行上ec2-reboot-instances从另一台机器上的AWS Command Line Tools发出ec2-reboot-instances命令之间有什么区别(如果有的话)?

ec2-reboot-instances是否可以做任何通过SSH会话发送reboot东西,例如处理特定于AWS的环境事件?

这两个命令之间是否有偏好?

在我的具体情况中,我使用Java库来访问AWS API而不是命令行工具,但它仍然在AWS上调用相同的命令。 Java库比命令行工具更详细,所以通过SSH发送reboot命令会更容易,但是我想了解是否还有其他考虑因素会使得它值得使用AWS API方法。

使用差异:

  • 无需SSH访问权限(可以从任何计算机,甚至AWS控制台运行)
  • ec2-reboot-instances需要AWS凭证
  • 可以轻松脚本多个实例(更容易与其他AWS服务集成)

function差异:

  • 如果实例未完全closures, ec2-reboot-instances将在4分钟后强制重新启动。 (见文档 )
  • 该命令不确认成功 – 重新启动请求排队,但不通知,如果它工作,或者如果需要硬启动等(您被告知彻底失败的命令 – 例如权限问题等)
  • 执行命令有一些延迟 – 通常不太明显

如果实例响应并且可以通过SSH reboot (通过SSH)访问,将执行与ec2-reboot-instances相同的任务。


另外一点,从SSH重启足以进行定期维护(即不需要使用ec2-reboot-instances )。 根据文件 :

实例重新启动是您的虚拟实例的重新启动,相当于操作系统重新启动。

pipe理你自己的实例重启是非常简单的。 …您也可以从您的实例的操作系统重新启动您的实例。