reboot
如果有的话,在 EC2 实例的命令行上调用和ec2-reboot-instances
从另一台计算机上的 AWS 命令行工具发出命令之间有什么区别?
是否可以执行通过 SSH 会话ec2-reboot-instances
发送无法执行的操作reboot
,例如处理特定于 AWS 的环境事项?
这两个命令之间有偏好吗?
在我的特定情况下,我使用 Java 库而不是命令行工具来访问 AWS API,但它仍然在 AWS 上调用相同的命令。Java 库比命令行工具更冗长,因此reboot
通过 SSH 发送命令会更容易,但我想了解是否还有其他考虑因素使得使用 AWS API 方法值得。
答案1
使用上的区别:
- 无需 SSH 访问(可以从任何计算机甚至 AWS 控制台运行)
ec2-reboot-instances
需要 AWS 凭证- 可以轻松为多个实例编写脚本(更容易与其他 AWS 服务集成)
功能差异:
ec2-reboot-instances
如果实例未完全关闭,将在 4 分钟后强制硬重启。(请参阅文档)- 该命令未确认成功 - 重启请求已排队,但您不会被告知它是否有效或者是否需要硬启动等(您会被告知彻底失败的命令 - 例如权限问题等)
- 命令执行略有延迟 - 通常不明显
在实例响应并且可以通过 SSH 访问的情况下reboot
(通过 SSH)将执行与 相同的任务ec2-reboot-instances
。
另外需要指出的是,从 SSH 重新启动就足以进行定期维护(即您不需要使用ec2-reboot-instances
)。根据文档:
实例重启是虚拟实例的重启,相当于操作系统重启。
管理您自己的实例重启非常简单。...您还可以从实例的操作系统重新启动实例。