boto3는 python3 라이브러리다.
AWS EBS 웹 UI는 사용자가 이용하기 편리하지만, 나는 코드로 확인을 해보고 싶었다.
우선 AWS CLI 계정의 액세스 키와 시크릿 액세스 키, 리전을 사용하여 세션 객체를 생성해야 한다.
그 후, 세션 객체로 Client 클래스의 객체를 생성한다.
sess = boto3.Session(
# TODO: Supply your AWS credentials & specified region here
aws_access_key_id='',
aws_secret_access_key='',
region_name='', # Or whatever region you want
)
ec2 = sess.client('ec2')
Client 클래스는 여러 메소드를 가지고 있으니, 문서를 참고하자.
EBS 데이터를 보기 위해서 describe_volume 메소드를 호출해야 한다.
self.all_ebs = ec2.describe_volumes()['Volumes']
사용 여부는 self.all_ebs의 각 아이템이 "Attachments" key에 매칭되는 value 가 있는지 확인하면 된다.
for i, e in enumerate(self.all_ebs):
if len(e['Attachments']) > 0:
self.all_used_ebs.append(e)
else:
self.all_unused_ebs.append(e)
전체 소스 코드
import boto3
class EBS:
def __init__(self):
sess = boto3.Session(
# TODO: Supply your AWS credentials & specified region here
aws_access_key_id='',
aws_secret_access_key='',
region_name='', # Or whatever region you want
)
ec2 = sess.client('ec2')
self.all_ebs = ec2.describe_volumes()['Volumes']
self.all_used_ebs = []
self.all_unused_ebs = []
def check_unused_ebs(self):
self.__print_items("Print all ebs", self.all_ebs)
for i, e in enumerate(self.all_ebs):
if len(e['Attachments']) > 0:
self.all_used_ebs.append(e)
else:
self.all_unused_ebs.append(e)
self.__print_items("Print all used ebs", self.all_used_ebs)
self.__print_items("Print all unused ebs", self.all_unused_ebs)
def __print_items(self, msg, arr):
print()
print("##### {0} #####".format(msg))
for i, e in enumerate(arr):
print(e)
if __name__ == '__main__':
EBS().check_unused_ebs()
더 많은 내용을 보시려면 아래를 참고하세요.
블로그의 다른 글
'[개발] Infrastructure > AWS' 카테고리의 다른 글
사용 중인 모든 AWS 서비스를 확인하는 방법인 Tag Editor를 알아보자. (0) | 2021.07.30 |
---|---|
미 사용 AWS EC2 보안 그룹은 어떻게 확인할까? (0) | 2021.07.28 |
미 사용 AWS key-pairs 를 정리하는 방법 (0) | 2021.07.15 |
AWS도 로그인 시 OTP를 쓸 수 있다? AWS MFA에 대해서 알아보자 (0) | 2021.07.13 |
AWS Well-Architected Tool이란 무엇일까? (0) | 2021.06.20 |