【问题标题】:How to identify when Amazon EC2 Windows instance is online after a reboot如何在重启后识别 Amazon EC2 Windows 实例何时在线
【发布时间】:2019-10-22 05:01:23
【问题描述】:

我正在尝试编写一个脚本来修补 Windows EC2 实例,安装补丁后需要重新启动。

我可以编写代码来重启实例,但是如何识别服务器是否恢复在线?

我说的是 Windows 实例,我尝试过使用 get-ec2instancestatus cmdlet 但没有用。

【问题讨论】:

  • 您是使用 Windows 命令还是使用 AWS CLI 执行重启?您可以在 AWS Windows PowerShell 工具中使用 Restart-EC2Instance 命令,然后使用 Get-EC2InstanceStatus 检查“InstanceState”。
  • 在操作系统级别重新启动。就 Amazon EC2 而言,虚拟机运行正常,因此无法告诉您操作系统何时运行。您需要以某种方式连接到 Windows 以查看它是否响应。一旦实例再次可用,您打算做什么?
  • 你知道AWS Systems Manager Patch Manager吗?您是否可以使用此服务而不是编写自己的脚本:-)
  • @John Rotenstein - 我在扩展组中有 Windows 实例,并希望在启动服务器重新启动之前暂停运行状况检查过程,以降低被终止的风险,并且一旦服务器重新联机可用于 RDP ,我需要从伸缩组的挂起进程中删除健康检查进程..
  • @Patrick - 我正在使用 SSM 执行修补...但是如果我不暂停伸缩组的健康检查过程,SSM 将无法帮助我重新启动服务器而不终止它... :)

标签: windows amazon-web-services powershell amazon-ec2


【解决方案1】:

如果您通过 Amazon EC2 Auto Scaling 启动实例,并且希望在加入 Auto Scaling 组之前对新启动的实例执行操作,您可以使用Amazon EC2 Auto Scaling Lifecycle Hooks

当 Auto Scaling 启动实例时,它会将实例置于“等待状态”,调用生命周期挂钩,然后等待信号。收到信号后,实例将被放入 Auto Scaling 组并开始运行状况检查。

您的代码将负责响应来自生命周期钩子的信号,根据需要更新实例,然后发出信号表明流程可以继续。

【讨论】:

  • 感谢 John 的回复,但我认为我的问题并不清楚.. 让我把它放在这里.. 我有一个 Windows EC2 实例并且 ICMP 未启用所以 ping 不是选项检查操作系统是否启动.. 现在,如果我使用 restart-ec2instance cmdlet 远程重新启动此服务器,我如何跟踪重新启动是否完成并且服务器是否重新联机以进行 RDP?因为 ping 不会得到响应,我们还有什么其他选择?
  • 对不起,如果我不清楚...我的回答是建议一个替代过程,而不是如何回答您提出的问题。使用 Lifecycle Hook 避免了暂停运行状况检查的需要,因此它是一种在服务器开始为 Auto Scaling 组中的流量提供服务之前配置服务器的“更干净”的方法。
猜你喜欢
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 2011-07-15
  • 2015-05-11
  • 2013-12-08
  • 1970-01-01
相关资源
最近更新 更多