AWS Infra
-
[ AWS ] Python boto3를 이용하여 ElastiCache Database 메모리 사용량 확인AWS Infra 2023. 5. 31. 15:04
from datetime import datetime from datetime import timedelta import boto3 cloudwatch = boto3.client('cloudwatch') def elastiCache_Database_Memory(): # 샘플 2023년 5월 1일 데이터 st = datetime(2023,5,1,0,0,0) - timedelta(hours=9) et = st + timedelta(days=1) response = cloudwatch.get_metric_statistics( Namespace='AWS/ElastiCache', MetricName='DatabaseMemoryUsagePercentage', Dimensions=[ { 'Name': 'CacheCl..
-
[ AWS ] Python boto3를 이용한 S3에 저장된 CSV 파일 읽기 / 쓰기AWS Infra 2023. 5. 23. 14:56
CSV파일 S3에 다이렉트 저장하기 Sample : Pandas DataFrame ( 24 X 5 ) from io import StringIO import boto3 s3 = boto3.client('s3') bucket = 'string' # Put Bucket Name csv_buffer = StringIO() df.to_csv(csv_buffer) s3.put_object(Bucket=bucket, Body=csv_buffer.getvalue(), Key='df.csv') S3에 저장되어 있는 CSV파일 다이렉트 읽기 import boto3 import pandas as pd import io s3 = boto3.client('s3') bucket = 'string' obj = s3.get_obj..
-
[ AWS ] Python boto3를 이용한 EC2 Instance 정보 구하기AWS Infra 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["InstanceI..
-
[ AWS ] Python boto3를 이용하여 WAF IPset IP 수정하기AWS Infra 2023. 5. 16. 17:28
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 ] Python boto3를 이용하여 RDS Connections 데이터 추출 하기AWS Infra 2023. 5. 11. 11:30
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 ] Python boto3를 이용하여 ELB Metric 모니터링AWS Infra 2023. 5. 10. 14:14
Python Boto3를 이용하여 ELB 2XX Count 통계를 추출해보고, 효율적으로 모니터링해보자. 메소드는 cloudwatch.get_metric_statistics이용하고, MetricName은 HTTPCode_Target_2XX_Count 을 사용하면 된다. ELB 콘솔 cloudwatch에서도 아래지표와 같이 볼 수 있는데, 이 데이터를 Python으로 추출해보자 from datetime import datetime from datetime import timedelta cloudwatch = boto3.client('cloudwatch') elb = 'string' # elb의 arn의 app이하 부분부터 넣어주면 된다. def elb_2XX_Count(elb): response = clo..
-
[ AWS ] Python boto3를 이용하여 Target Group Health 모니터링AWS Infra 2023. 4. 25. 12:31
import boto3 client = boto3.client('elbv2') response = client.describe_target_health( TargetGroupArn='string' ) for i in response['TargetHealthDescriptions']: print(i['TargetHealth']['State']) ----------------------------------------------- healthy . 비정상일 경우 : 'unhealthy', 'unused' print(i['TargetHealth']['State'],i['TargetHealth']['Description']) ------------------------------------------------..
-
[ AWS ] Python boto3를 이용하여 S3 object 스토리지 클래스 변경AWS Infra 2023. 3. 21. 10:41
Python boto3를 이용하여 특정 object의 클래스를 변경해 보자. # STANDARD → STANDARD_IA 클래스 변경 import boto3 s3 = boto3.client('s3') bucket_name=' ' object_key = ' ' res = s3.copy_object( CopySource=f"{bucket_name}/{object_key}", Bucket=bucket_name, Key=object_key, StorageClass='STANDARD_IA') print(res) 아래와 같이 스토리지 클래스가 변경되었다.