AWS를 활용한 효율적인 EC2 인스턴스 관리 시스템

문한성·2025년 2월 26일

소개

클라우드 환경에서 효율적인 리소스 관리는 비용 최적화와 시스템 안정성 확보에 핵심적인 요소입니다. 특히 AWS EC2 인스턴스의 경우, 적절한 모니터링과 자동화된 관리 시스템을 구축함으로써 상당한 비용 절감과 운영 효율성을 높일 수 있습니다. 이번 프로젝트에서는 EventBridge와 Lambda를 활용하여 EC2 상태 변화를 감지하고, 미사용 인스턴스를 관리하며, 자동 시작/종료 기능을 구현한 아키텍처를 소개합니다.

아키텍처

아키텍처 개요

본 시스템은 아시아 태평양(서울) 리전(ap-northeast-2)에 구축되었으며, 크게 세 가지 핵심 프로세스로 구성되어 있습니다:

  1. EC2 상태 변화 감지 및 알림 시스템
  2. 미사용(UnderUtilized) EC2 인스턴스 감지 및 관리
  3. 비용 절감을 위한 EC2 자동 시작/종료 스케줄링

각 프로세스는 EventBridge, Lambda, FLOW Open API Bot 등의 AWS 서비스를 조합하여 구현되었습니다.

주요 기능 및 이점

1. EC2 상태 변화 감지 및 알림 시스템

구현 프로세스:

  • EC2 인스턴스 생성
  • 인스턴스 시작
  • 인스턴스 재부팅
  • 인스턴스 최대 절전
  • 인스턴스 종료(삭제)

작동 방식:
1. EventBridge가 EC2 상태 변화 이벤트를 감지
2. Lambda 함수가 이벤트 정보를 처리
3. HTTP POST 요청을 통해 FLOW Open API Bot으로 알림 전송

이점:

  • 실시간 인스턴스 상태 모니터링 가능
  • 예상치 못한 인스턴스 종료나 문제 발생 시 즉각 대응 가능
  • 시스템 가용성 향상 및 다운타임 최소화
  • 팀 내 투명한 인프라 변경 관리 가능

2. 미사용(UnderUtilized) EC2 인스턴스 감지 및 관리

구현 프로세스:
1. 모든 실행 중인 EC2 인스턴스 조회
2. 최근 7일간의 CPU 사용률 확인
3. CPU 사용률이 1% 미만인 경우 미사용으로 간주
4. 인스턴스에 'UnderUtilized' 태그 추가

작동 방식:
1. EventBridge가 매주 특정 요일/시간에 트리거
2. Lambda Python 함수가 실행되어 EC2 인스턴스의 CloudWatch 메트릭 분석
3. 미사용으로 판단된 인스턴스에 태그 지정 및 관리자에게 알림

이점:

  • 불필요한 리소스 사용 식별을 통한 비용 절감
  • 리소스 낭비 방지 및 클라우드 환경 최적화
  • 데이터 기반 인프라 의사결정 지원
  • 자동화된 비용 최적화 프로세스 구축

3. 비용 절감을 위한 EC2 자동 시작/종료 스케줄링

구현 프로세스:
1. 평일 오전 6시 동록된 EC2 인스턴스 시작
2. 평일 오후 9시 등록된 EC2 인스턴스 종료
3. Python boto3 라이브러리를 사용한 EC2 제어

작동 방식:
1. Cron 표현식을 사용한 EventBridge 규칙이 지정된 시간에 트리거
2. Lambda 함수가 실행되어 대상 EC2 인스턴스 시작 또는 종료
3. 결과 로그 기록 및 필요시 알림 전송

이점:

  • 비업무 시간 동안 불필요한 리소스 사용 방지
  • 예측 가능한 스케줄링을 통한 비용 관리
  • 개발/테스트 환경에 이상적인 자동화 솔루션
  • 월 단위 클라우드 운영 비용 대폭 절감 (최대 70%까지 가능)
  • 수동 개입 없는 자동화된 운영 환경 구축

기술적 구현 세부사항

EventBridge 구성

  • 이벤트 패턴 기반 트리거 설정
  • 시간 기반(Cron) 트리거 구성
  • 특정 리소스 상태 변경 감지 규칙 정의

Lambda 함수

  • Python 또는 Node.js 기반 함수 구현
  • AWS SDK(boto3) 활용한 EC2 제어 로직
  • CloudWatch 메트릭 데이터 분석 알고리즘
  • 태그 기반 리소스 관리 기능

알림 시스템

  • FLOW Open API Bot 연동
  • JSON 형식의 구조화된 알림 메시지 설계
  • 인스턴스 ID, 상태, IP 등 중요 정보 포함
  • 태그 기반 인스턴스 분류 및 알림 차별화

도입 효과

이 시스템을 도입한 후 다음과 같은 효과를 얻을 수 있었습니다:

  1. 비용 최적화: 불필요한 인스턴스 운영 시간 감소로 인한 월 AWS 비용 약 30% 절감
  2. 운영 효율성: 수동 모니터링 및 관리 시간 감소로 DevOps 팀 생산성 향상
  3. 가시성 향상: 실시간 알림을 통한 인프라 상태 투명성 확보
  4. 리소스 거버넌스: 미사용 리소스 자동 식별 및 태깅으로 체계적인 클라우드 관리 가능
  5. 장애 대응 시간 단축: 비정상 상태 변경 즉시 감지 및 알림으로 MTTR(Mean Time To Recovery) 개선

결론

AWS EventBridge와 Lambda를 활용한 EC2 관리 시스템은 클라우드 환경에서 비용 효율성과 운영 안정성을 동시에 확보할 수 있는 효과적인 아키텍처입니다. 특히 개발/테스트 환경에서 불필요한 리소스 비용을 절감하고, 운영 환경에서는 미사용 인스턴스를 식별하여 리소스 최적화를 달성할 수 있습니다. 이러한 자동화된 관리 시스템은 DevOps 관행의 핵심 원칙인 '지속적인 모니터링과 최적화'를 실현하는 실용적인 솔루션이라 할 수 있습니다.

향후 이 시스템을 더욱 발전시켜 다양한 AWS 리소스(RDS, ELB 등)로 관리 범위를 확장하고, 머신러닝 기반의 리소스 사용 패턴 예측 기능을 추가할 계획입니다.

참고 사항

이 프로젝트는 AWS 서비스 중 EventBridge, Lambda, EC2, CloudWatch를 주로 활용하였으며, Python boto3 라이브러리와 AWS SDK를 사용하여 구현되었습니다. 실제 프로덕션 환경에 적용 시 보안 설정과 권한 관리에 주의가 필요합니다.


profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글