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