AWS Infra

[ AWS ] Python boto3를 이용한 EC2 Instance 정보 구하기

Pydole 2023. 5. 22. 14:10

 

 

Python Boto3를 이용하여 EC2의 정보를 구해보자.

 

ISMS 등 자산관리 및 EC2의 기본적인 모니터링을 할 때도 유용하게 사용할 수 있다.

 

 

import boto3

ec2 = boto3.client('ec2')

def ec2_info_func():
    ec2_info = {}

    response = ec2.describe_instances()

    for reservation in response["Reservations"]:
        for i in reservation["Instances"]:
            for j in i['Tags']:
                # tagName이 없으면 'None'
                tagName = 'None'

                if j['Key'] == 'Name':
                    tagName = j['Value']
                
            ec2_info[i["InstanceId"]] = [tagName,i['InstanceType'],i['State']['Name']]


    return ec2_info

 

 

 

 

 

pandas를 이용하여 보기 편하게 HTML 형태로 Output 해보자.

 

import pandas as pd

ec2s = ec2_info_func()

df = pd.DataFrame(ec2s.values(),index=ec2s.keys(),columns = ['TagName','InstanceType','Runnung State'])
df.to_html('ec2_info.html')

 

 

더 많은 ec2 정보를 구하려면  response["Reservations"]  데이터에서 Network, 옵션 등의 값을 더 추출할 수 있다.