获取已终止的 EC2 实例的 ID

获取已终止的 EC2 实例的 ID

我正在尝试创建一份有关我们的 EC2 实例使用情况和利用率随时间变化的报告。我想检查过去 X 天内在我的环境中运行过的所有实例。作为报告的一部分,我想包括在扩展组扩展期间创建但后来随着组缩减而终止的实例。

使用一个简单的 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 才能检索它们。有没有办法检索已终止的实例 ID?

答案1

这些信息可从AWS Config

借助 AWS Config,您可以发现现有和已删除 AWS 资源确定您对规则的整体遵守情况,并深入了解资源的配置细节在任何时间点.这些功能可实现合规性审计、安全分析、资源变化跟踪和故障排除。

必须专门打开配置,因此您将无法检索历史信息。

配置仅限于EC2和VPC相关资源。

相关内容