AWS SDK for Python(Boto3)을 통해 EC2의 CPU 사용률을 가져오는 방법

Boto3에서 CloudWatch 메트릭을 호출하면 EC2 인스턴스에서 자체 CPU 사용률을 가져오는 메모가 됩니다.

차리다

  • CloudWatch 읽기 권한을 포함한 IAM 스크롤 막대를 준비하여 EC2
  • IAM 스크롤 막대를 사용하여 액세스 키 없이 매우 안전
  • CPU 사용률을 얻으려는 EC2에 CloudWatch Agent 설치
  • 코드


    main.py라는 파일을 만들고 기술합니다.
    pip로boto3 등 필요한 모듈을 미리 설치합니다.
    import boto3
    import requests
    import datetime
    import dateutil.tz
    
    region = requests.get('http://169.254.169.254/latest/meta-data/local-hostname').text.split('.')[1]
    instance_id = requests.get('http://169.254.169.254/latest/meta-data/instance-id').text
    
    client = boto3.client("cloudwatch", region_name=region)
    
    response = client.get_metric_statistics(
            Namespace='AWS/EC2',
            MetricName='CPUUtilization',
            Dimensions=[
              {
                'Name': 'InstanceId',
                'Value': instance_id
              },
            ],
            StartTime=datetime.datetime.utcnow() - datetime.timedelta(seconds=600),
            EndTime=datetime.datetime.utcnow(),
            Period=300,
            Statistics=['Average']
    )
    
    for res in response['Messages']:
      if 'Body' in res:
        print(res['Body'])
    
    출력 결과는 다음과 같다.
    $ python3 main.py
    
    
    도량을 바꾸면 다른 값을 얻을 수 있습니다.

    좋은 웹페이지 즐겨찾기