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

문한성·2025년 2월 26일
0

소개

클라우드 환경에서 효율적인 리소스 관리는 비용 최적화와 시스템 안정성 확보에 핵심적인 요소입니다. 특히 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개의 댓글

관련 채용 정보