【问题标题】:AWS EC2 - how to make sure an instance is being rebooted?AWS EC2 - 如何确保实例正在重启?
【发布时间】:2018-02-07 05:51:00
【问题描述】:

我想发出命令(远程)重启 EC2 实例,并在成功重启后 - 需要确认它是成功的。如何做到这一点?

如何(以编程方式)知道 EC2 实例已重新启动?

需要捕获的信息(如果可能的话,类似于这些带有时间戳的信息):
- 重新启动尝试
- 重新启动开始
- 重启正在进行
- 重启完成
- 就基础设施而言,重启成功

谢谢。

【问题讨论】:

  • 您可能想澄清一下“已重新启动”的确切含义...重新启动尝试了吗?就基础架构而言,重启完成了吗?还是完全启动并且所有服务都健康?根据API docs 的说法,RebootInstances 总是重启实例,但需要多长时间取决于实例的稳定性。
  • 好点。如果可能,最好获取所有信息(重启尝试、重启开始、重启正在进行、重启完成、重启成功,就基础架构而言)。

标签: amazon-web-services amazon-ec2 command-line-interface reboot


【解决方案1】:

您可以轮询实例的状态以检查结果。这是一些可以帮助您的伪代码。这是使用 AWS Java 开发工具包。其他语言 SDK 中的流程类似。

// Call the AWS Ec2 Describe Instance API. 
DescribeInstancesRequest describeRequest = new DescribeInstancesRequest().withInstanceIds("yourInstanceId"); 

DescribeInstancesResult result = ec2Client.describeInstances(describeRequest);

// Fetch the required instance's status. 
InstanceState status = result.getReservations().get(0).getInstances().get(0).getState();

// Check if instance status is Running. 
Objects.equals(status.getName(), InstanceStateName.Running.toString());

// Continue the loop until instance is started running. 

希望这会有所帮助。

【讨论】:

【解决方案2】:

如果您在 EC2 中为区域启用了 cloudtrail。创建指标过滤器并订阅通知。每次重新启动都会通知您。

https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html#cloudwatch-alarms-for-cloudtrail-ec2-instance-changes

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2021-01-03
    • 2023-04-05
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多