我确实需要了解AWS EC2实例的停止时间。我已经检查了AWS cloudtrail,但找到确切停止的EC2实例并不容易。是否可以通过 aws-cli 命令或任何 boto3 脚本查看停止 EC2 实例的确切时间?
当您搜索已停止的实例时,您可以从
describe-instancesAWS CLI 中的
StateTransitionReason
获取此信息:
aws ec2 describe-instances --filter Name=instance-state-name,Values=stopped --query 'Reservations[].Instances[*].StateTransitionReason' --output text
输出示例:
User initiated (2020-12-03 07:16:35 GMT)
AWS Config 跟踪资源随时间变化的状态。
AWS Config 提供您的 AWS 账户中 AWS 资源配置的详细视图。这包括资源如何相互关联以及它们过去的配置方式,以便您可以看到配置和关系如何随时间变化。
因此,您可以回顾 Amazon EC2 实例的配置历史记录并提取实例更改为
Stopped
状态的时间。
有时
StateTransitionReason
缺少时间,您可以使用CloudTrail并搜索资源名称=实例ID来查找StopInstance(s)
API调用。
默认情况下,您可以追溯 90 天,如果您创建自己的跟踪,则可以无限期追溯。
正如其他答案中所解释的,来自
describe_instances的
StateTransitionReason
将提供状态转换时间,但这仅适用于用户启动的关闭。
如果是操作系统启动的关闭,
State transition reason
将是Client.InstanceInitiatedShutdown: Instance initiated shutdown
,在这种情况下,我们无法找到停止时间。