获取终止的EC2实例的Ids

我正在尝试创build一个关于我们的EC2实例使用率和利用率的报告。 我想要检查过去X天内在我的环境中运行或已经运行的所有实例。 作为报告的一部分,我想包括在规模组扩展期间创build的实例,但随后在组规模缩小时终止。

使用一个简单的Python脚本与boto3我可以得到一个地区的实例列表:

 session = Session(aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY, region_name=self.name) ec2 = session.resource('ec2') cloudwatch = session.resource('cloudwatch') 

通过列出这些实例,使用以下命令,在几个小时之后我看不到终止的实例(可能是在仪表板中停止看到它们的同时):

 ec2.instances.all() 

使用cloudwatch,当我使用下面的命令时,我看到了终止实例的度量标准:

 metric = cloudwatch.Metric('AWS/EC2', 'CPUUtilization') result = metric.get_statistics( Dimensions=[{'Name': 'InstanceId', 'Value': instanceId}], StartTime=timeRange.start, EndTime=timeRange.end, Period=300, Statistics=['Average'], ) # This returns a complete list of data points for the instance was live 

这意味着对于已终止的实例,度量标准确实存在,但是您必须具有这些实例的标识才能检索它们。 有没有办法检索终止的实例id?

此信息可从AWS Config获得 。

借助AWS Config,您可以发现现有和已删除的AWS资源 ,确定您对规则的总体遵从性,并随时深入了解资源的configuration细节。 这些function使合规性审计,安全分析,资源变更跟踪和故障排除成为可能。

configuration必须明确打开,所以你将无法检索你的历史信息。

configuration仅限于EC2和VPC相关资源。