如何找出 EC2 实例何时关闭?

use*_*461 10 amazon-ec2 amazon-web-services aws-cli

我在 EC2 Web 控制台中有数百个实例。

有些是关机。我可以看到它们是在几个月或几年前创建的。它们似乎被遗弃和遗忘了一段时间,但很难判断终止它们是否安全。

例如,它们可能是一些旧备份,有人可能只是将负载迁移到新实例并将旧实例保留数周作为预防措施,等等......

我们最终保留了其中的大部分,因为这是最安全的选择。

当实例关闭(但未终止)时,我们仍在为 EBS 卷付费。价格可能会随着许多未使用的实例而上涨(EBS 为每月每 TB 140 美元)。所以我想做一些清理工作。

我在想,如果我能找到实例关闭的时间,那将是一个很好的指标,表明它是如何“被遗弃”的。

如何找到实例上次关闭的时间?

use*_*461 8

使用 awscli。 pip install awscli

aws ec2 describe-instances --output table --instance-id i-aef88019
Run Code Online (Sandbox Code Playgroud)

输出:

|||  StateTransitionReason |  User initiated (2015-11-16 13:36:40 GMT)   |||
[...]
||||                             StateReason                            ||||
|||+---------+----------------------------------------------------------+|||
||||  Code   |  Client.UserInitiatedShutdown                            ||||
||||  Message|  Client.UserInitiatedShutdown: User initiated shutdown   ||||
Run Code Online (Sandbox Code Playgroud)

我们可以看到实例发生了什么以及发生在什么时间。

例如,这个是在格林威治标准时间 2015-11-16 13:36:40 手动关闭的。

  • 如果实例在 EC2 Web 控制台中关闭,它会起作用。如果实例是从内部“shutdown -h now”,则它不起作用。在亚马逊正式向实例添加“上次关机”元信息之前,我们可以获得尽可能多的信息。 (2认同)