본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

AWS Ambassador

미사용 EBS 볼륨 알림 자동화 구현 방안

2023.02.01

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 주요 사용 서비스

  1. EventBridge
    : Amazon EventBridge는 AWS 서비스, 외부 시스템, SaaS 앱 등과의 연결을 통해 이벤트 기반의 애플리케이션 구축을 할 수 있는 AWS Managed Service입니다.
    (AWS Site link : https://aws.amazon.com/ko/eventbridge/)
  2. Lambda Functions
    : AWS Lambda는 서버를 배포하거나 관리하지 않고도 코드를 실행할 수 있는 환경을 제공해 주는 서버리스향 AWS Managed Service입니다.
    (AWS Site link : https://aws.amazon.com/ko/lambda/)
  3. Simple Notification Service (SNS)
    : Amazon SNS는 어플리케이션 간 혹은 어플리케이션 to End-User에게 알림을 제공하는 메시징을 위한 AWS Managed Service입니다.
    (AWS Site link : https://aws.amazon.com/ko/sns/)

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 예제 코드입니다.

Code Block 4 func-an2-availableVolumeCheck.py

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

Code Block 5 policy-an2-availableVolumecheck.json

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을 확인 및 삭제하는 것만으로도 프로젝트의 클라우드 리소스 사용 비용 절감에 도움이 될 수 있습니다.

챗봇과 대화를 할 수 있어요