boto3 7

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

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["InstanceI..

AWS Infra 2023.05.22

[ AWS ] Python boto3를 이용하여 WAF IPset IP 수정하기

Python Boto3를 이용한 WAF IPset에 IP Address 추가 * 하나의 IP를 추가/삭제는 않되기 때문에, 기존 IP 리스트를 가져와서 수정하는 것 import boto3 client = boto3.client('wafv2') ipsetName = 'string' ipsetId = 'string' ipAddress = 'x.x.x./32' def wafv2_update_ip_set(n,i,a): # ip가 포함되어 있는지 get_ip_set으로 확인 response = client.get_ip_set( Name=n, Scope='REGIONAL', Id=i) if a in response['IPSet']['Addresses']: return 'exist ipaddress' else: # ..

AWS Infra 2023.05.16

[ AWS ] Python boto3를 이용하여 RDS Connections 데이터 추출 하기

import boto3 from datetime import datetime from datetime import timedelta cloudwatch = boto3.client('cloudwatch') def rds_connections(): StartTime = datetime(2023,5,1) - timedelta(hours=9) # 한국시간에 맞게 -0900 # 한국기준으로 5월 1일로 지정해줬기 때문에, UTC는 4월 30일 15시 데이터 추출한다. EndTime = StartTime + timedelta(days=1) response = cloudwatch.get_metric_statistics( Namespace='AWS/RDS', MetricName='DatabaseConnections',..

AWS Infra 2023.05.11

[ AWS ] Python boto3를 이용하여 값 CPUCreditBalance 구하기

Python boto3를 이용한 CPUCreditBalance 값 모니터링 모니터링 대상 인스턴스는 t3a.medium이며, CPUCreditBalance 테이블은 아래와 같다. T3a 시간당 지급되는 CPU 크레딧 누적 가능한 최대 지급된 크레딧* vCPU*** vCPU당 기준 사용률 t3a.nano 6 144 2 5%** t3a.micro 12 288 2 10%** t3a.small 24 576 2 20%** t3a.medium 24 576 2 20%** https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html#CPU-credit-accrual-limit 버스트 가능 성능 인스턴스에..

AWS Infra 2023.02.02

[ AWS ] Python boto3를 이용하여 EC2 CPU 사용율 구하기

Python boto3를 이용하여 EC2 인스턴스의 CPU 사용율 구하기 import boto3 from datetime import datetime from datetime import timedelta client = boto3.client('cloudwatch') def CPUUtilization_Ec2(isinstance_id): response = client.get_metric_statistics( Namespace='AWS/EC2', MetricName='CPUUtilization', Dimensions=[ { 'Name': 'InstanceId', 'Value': isinstance_id }, ], StartTime=datetime.today() - timedelta(days=1) , En..

AWS Infra 2023.02.02

[ AWS ] Python Boto3를 이용한 CloudFront Invalidation (무효화)

CloudFront 콘텐츠들의 캐시 히트율을 높히기 위해 TTL을 길게 변경하고, 변경되는 컨텐츠들은 Python을 이용하여 Invalidation (무효화) 무효화 처리하는 방법을 알아본다. 아래는 테스트용인 단일 파일이지만, APIGate와 같이 활용하기 위해서는 'Items' 배열로 받아서 'Quantity' 수량을 len() 을 이용해서 처리하면 되겠다. import boto3 from time import time s3 = boto3.client('cloudfront') response = s3.create_invalidation( DistributionId='', InvalidationBatch={ 'Paths': { 'Quantity': 1, 'Items': [ '/test.jpg', ] }..

AWS Infra 2023.01.13