Я пытаюсь создать отчет об использовании и использовании наших инстансов 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
Это означает, что метрики существуют для завершенных экземпляров, но у вас должен быть идентификатор этих экземпляров, чтобы их получить. Есть ли способ получить идентификаторы завершенных экземпляров?