AI 기반 AWS 낭비 탐지기 (내 계좌에서 $4,200를 찾음)
Source: Dev.to
$4,200 실수
한 번은 스테이징 환경을 AWS에서 6 개월 동안 실행 상태로 두었습니다.
- 비용: $4,200
- 트래픽: 0
- 사용자: 0
- 가치: 0
그냥… 존재하고 있었을 뿐인데 비용이 계속 쌓였어요. 결국 이를 발견했을 때, 마치 내가 가지고 있다는 걸 잊어버린 아파트의 월세를 내고 있었던 느낌이었어요. 🤡
AWS Cost Explorer만으로는 부족한 이유
AWS Cost Explorer는 다음을 보여줍니다:
- 당신이 얼마나 쓰고 있는지
- 어디에 쓰고 있는지
- 시간에 따른 지출 추세
하지만 다음은 알려주지 못합니다:
- 아무 일도 하지 않는 리소스
- 당신이 잊어버린 리소스
- 과다 프로비저닝된 리소스
- 돈을 낭비하고 있는 곳
CloudWise용 AI 기반 낭비 탐지
AI 기반 스캐너를 만들어 AWS 계정을 검사하고 다음과 같은 일반적인 낭비 패턴을 찾아냅니다:
- 연결이 전혀 없는 RDS 데이터베이스
- 아무것에도 연결되지 않은 EBS 볼륨
- 인스턴스에 연결되지 않은 Elastic IP
- 트래픽이 전혀 없는 로드 밸런서
- CPU 사용률이 < 5 %인 EC2 인스턴스
- 트래픽이 전혀 없는 NAT Gateway
- 요청이 전혀 없는 ELB
- 크론 작업만 수행하는 t3.2xlarge 인스턴스
- 저장 용량이 90 % 이상 남은 RDS 인스턴스
- 메모리 사용량이 과다한 EC2 인스턴스
- 과다 할당된 메모리를 가진 Lambda 함수
- AZ 간 데이터 전송 요금
- 비싼 스토리지 클래스를 사용하는 S3 버킷
- 오래된 EBS 스냅샷
- 사용되지 않는 Elastic IP
작동 방식
- AWS 계정 연결 (읽기 전용 IAM 역할; 약 2 분 소요)
- AI가 리소스를 스캔 (사용 패턴, 비용, 구성 분석)
- 단계별 권고안 제공 (각 이슈를 해결하기 위한 정확한 조치)
예시: 고아 RDS 데이터베이스 감지
- 리소스:
prod-staging-db - 비용: $247.32 /월
- 마지막 연결: 187 일 전
- 상태: 실행 중이지만 사용되지 않음
권고안
- 최종 스냅샷 생성
- 데이터베이스 삭제
예상 절감액: $247.32 /월 ($2,967.84 /년)
위험 수준: 낮음 (6 개월 동안 연결 없음)
스택
- 프론트엔드: React + TypeScript + TailwindCSS
- 백엔드: Python + FastAPI
- 데이터베이스: PostgreSQL
- AI: 권고 생성용 OpenAI GPT‑4
- AWS 통합: Boto3 + Cost Explorer API
주요 과제
- IAM 권한: 보안과 기능성 사이의 균형
- 비용 할당: 리소스를 실제 비용에 매핑
- 사용 패턴 감지: 유휴와 저사용을 구분
- 권고 품질: 오탐지 방지
낭비 구성 (전형적인 경우)
- 70 % 고아 또는 유휴 리소스
- 20 % 과다 프로비저닝
- 10 % 구성 문제 (AZ 간 전송, 스토리지 클래스)
내 AWS 계정에서 발견한 내용
- 총 낭비: $4,247 /월
- 고아 리소스: $1,847 /월 (RDS, EBS, ELB)
- 유휴 리소스: $1,200 /월 (EC2, RDS)
- 과다 프로비저닝: $800 /월 (EC2, Lambda)
- AZ 간 전송: $400 /월
CloudWise 사용해 보기
https://cloudcostwise.io – 무료이며 신용카드가 필요 없습니다. AWS 계정을 연결하는 데 약 2 분 정도 걸립니다.
DevOps 엔지니어와 플랫폼 팀의 피드백을 특히 기다립니다!
곧 출시 예정
- Kubernetes/EKS용 네임스페이스 별 비용 추적
- 자동 복구 (승인 절차 포함)
- 비용 이상 징후에 대한 Slack/Teams 알림
- 조직을 위한 다중 계정 지원
여러분의 이야기를 공유해주세요
예상치 못한 AWS 낭비를 발견한 적이 있나요? 댓글에 여러분의 공포 스토리를 공유해주세요! 👇
P.S. 그 $4,200 스테이징 환경? 대신 정말 멋진 에스프레소 머신을 살 수 있었어요. 아직도 생각 중입니다. ☕