클라우드 환경에서 효율적인 리소스 관리는 비용 최적화와 시스템 안정성 확보에 핵심적인 요소입니다. 특히 AWS EC2 인스턴스의 경우, 적절한 모니터링과 자동화된 관리 시스템을 구축함으로써 상당한 비용 절감과 운영 효율성을 높일 수 있습니다. 이번 프로젝트에서는 EventBridge와 Lambda를 활용하여 EC2 상태 변화를 감지하고, 미사용 인스턴스를 관리하며, 자동 시작/종료 기능을 구현한 아키텍처를 소개합니다.
본 시스템은 아시아 태평양(서울) 리전(ap-northeast-2)에 구축되었으며, 크게 세 가지 핵심 프로세스로 구성되어 있습니다:
각 프로세스는 EventBridge, Lambda, FLOW Open API Bot 등의 AWS 서비스를 조합하여 구현되었습니다.
구현 프로세스:
작동 방식:
1. EventBridge가 EC2 상태 변화 이벤트를 감지
2. Lambda 함수가 이벤트 정보를 처리
3. HTTP POST 요청을 통해 FLOW Open API Bot으로 알림 전송
이점:
구현 프로세스:
1. 모든 실행 중인 EC2 인스턴스 조회
2. 최근 7일간의 CPU 사용률 확인
3. CPU 사용률이 1% 미만인 경우 미사용으로 간주
4. 인스턴스에 'UnderUtilized' 태그 추가
작동 방식:
1. EventBridge가 매주 특정 요일/시간에 트리거
2. Lambda Python 함수가 실행되어 EC2 인스턴스의 CloudWatch 메트릭 분석
3. 미사용으로 판단된 인스턴스에 태그 지정 및 관리자에게 알림
이점:
구현 프로세스:
1. 평일 오전 6시 동록된 EC2 인스턴스 시작
2. 평일 오후 9시 등록된 EC2 인스턴스 종료
3. Python boto3 라이브러리를 사용한 EC2 제어
작동 방식:
1. Cron 표현식을 사용한 EventBridge 규칙이 지정된 시간에 트리거
2. Lambda 함수가 실행되어 대상 EC2 인스턴스 시작 또는 종료
3. 결과 로그 기록 및 필요시 알림 전송
이점:
이 시스템을 도입한 후 다음과 같은 효과를 얻을 수 있었습니다:
AWS EventBridge와 Lambda를 활용한 EC2 관리 시스템은 클라우드 환경에서 비용 효율성과 운영 안정성을 동시에 확보할 수 있는 효과적인 아키텍처입니다. 특히 개발/테스트 환경에서 불필요한 리소스 비용을 절감하고, 운영 환경에서는 미사용 인스턴스를 식별하여 리소스 최적화를 달성할 수 있습니다. 이러한 자동화된 관리 시스템은 DevOps 관행의 핵심 원칙인 '지속적인 모니터링과 최적화'를 실현하는 실용적인 솔루션이라 할 수 있습니다.
향후 이 시스템을 더욱 발전시켜 다양한 AWS 리소스(RDS, ELB 등)로 관리 범위를 확장하고, 머신러닝 기반의 리소스 사용 패턴 예측 기능을 추가할 계획입니다.
이 프로젝트는 AWS 서비스 중 EventBridge, Lambda, EC2, CloudWatch를 주로 활용하였으며, Python boto3 라이브러리와 AWS SDK를 사용하여 구현되었습니다. 실제 프로덕션 환경에 적용 시 보안 설정과 권한 관리에 주의가 필요합니다.