
1. 개요
AWS가 세상에 공개된 뒤 현재까지도 꾸준히 사용되고 있는 서비스 중 하나인 EC2는 EBS라고 하는 볼륨 디바이스를 사용합니다. EBS 볼륨은 EC2가 삭제될 때 함께 삭제 되도록 설정할 수도 있지만 별도로 삭제되지 않도록 설정할 수도 있습니다.
이와 같은 이유로 EC2에 연결되지 않는 다수의 EBS 볼륨들이 우리가 사용하는 AWS Account에 존재할 수 있습니다. 우리는 이런 사용하지 않는 EBS 볼륨들의 크기가 크고, 그 개수가 많아진다면 불필요한 비용을 지불할 수 있습니다.
이번 포스팅에서는 이러한 불필요한 EBS 볼륨을 찾아내어 알림을 통해 사용자에게 전달하는 방안에 대해 확인해 보겠습니다.
2. 구현 방안
2.1 아키텍처
EventBridge의 스케쥴리에 따라 Lambda Function의 코드가 Available한 EBS Volume을 확인하여 SNS를 통해 개인 Email로 전달하는 간단한 아키텍처입니다.

2.1.1 주요 사용 서비스
2.2 서비스 구현 살펴보기
2.2.1 Simple Notification Service
우선 Amazon SNS를 통해 Email로 알람을 받기 위한 SNS Topic을 생성합니다.

2.2.2 Lambda Functions
현재 계정의 Available 한 EBS Volume을 확인하는 코드를 작성하여 AWS 서버리스 컴퓨팅 서비스인 Lambda Function을 상용하여 배포합니다.
다음은 Python 코드로 작성한 Available Volume Check 코드를 Lambda function 예제 코드입니다.

상기 Python 코드가 동작하는 Lambda Funtion이 기능하기 위해서는 EBS(Elastic Block Storage)를 Describe 하고, SNS Topic을 Publish 하는 권한이 필요합니다. 다음 JSON 문은 Lambda Function이 사용하여야 하는 IAM Policy 예제문입니다.

2.2.3 EventBridge
Lambda Function이 주기적으로 동작하여 Available 한 EBS를 확인하기 위하여 EventBridge를 사용하여 스케쥴을 작성합니다.
EventBridge는 Cron 형태의 스케쥴 관리가 가능하며 Target으로 다양한 AWS Services를 지원합니다. 다음은 Lambda Functions을 Target으로 설정하는 예시입니다.
• Event Schedule 설정

• Target 설정 (이전 Step에서 만든 Lambda Function)

2.3 동작 확인
EventBridge의 스케쥴에 따라 Lambda Function이 동작하여 Available한 EBS Volumes을 확인하여 Amazon SNS를 통해 지정한 Email 주소를 통해 다음과 같이 어떤 EBS Volume이 유효한지 메일을 통해 정상적으로 전달됨을 확인할 수 있습니다.

3. 마무리
이번 포스트를 통해서 Amazon EventBridge, AWS Lambda, Amazon SNS(Simple Notification Service)를 사용하여 내가 사용 중인 계정의 Avaliable한 EBS Volumes을 확인하는 아키텍처를 구성해 보았습니다.
AWS를 사용하는 프로젝트, 그중에서도 EC2 환경을 많이 사용하고 다양한 개발 및 서비스 프로비저닝으로 인해 잦은 EC2 생성 및 삭제가 되고 있는 환경이라면 클라우드 자원 관리 중 미사용 중인 EBS Volume의 삭제를 놓치게 되는 경우가 생길 수 있습니다.
이번 포스팅을 통해 알아본 아키텍처를 통해 미사용 EBS Volume을 확인 및 삭제하는 것만으로도 프로젝트의 클라우드 리소스 사용 비용 절감에 도움이 될 수 있습니다.

기업명을 두 글자 이상 입력해주세요.
소식을 받아 보시려면 마케팅 정보 활용과 마케팅 정보 수신에 모두 동의해 주셔야 합니다.
제출이 완료되었습니다.
제출이 완료되었습니다.
확인 버튼을 누르시면 자사 홈페이지 홈화면으로 이동됩니다.
요청하신 자료가 이메일로 발송되었습니다.
구독 설정이 저장되었습니다.
잘못된 접근입니다. 정상적인 경로를 통해 다시 시도해 주세요.
검색 중 오류가 발생했습니다. 다시 시도해주세요.
제출에 실패하였습니다.
다시 시도해주세요.
사업자등록번호는 10자리를 입력해주세요.
지원하지 않는 파일 형식입니다.
10MB 이하의 파일만 업로드하실 수 있으며, 최대 10개까지 첨부 가능합니다.
10MB 이하의 파일만 업로드하실 수 있습니다.
파일은 최대 10개까지만 첨부하실 수 있습니다.
업로드 중 오류가 발생했습니다. 다시 시도해 주세요.
파일을 교체하시겠습니까?