CaseStudy:: AWS EC2, ECS 비용 절감 사례 분석
오늘은 레몬베이스 기술팀의 2024년 11월 AWS 클라우드 비용 절감 사례를 분석합니다. 저자는 EC2와 ECS 서비스의 비용을 절감했으며, 주요 절감 방식으로는 리소스 최적화, 할인 옵션 적용, 최신 인스턴스 활용을 사용했습니다.
AWS 클라우드 비용은 AWS Billing Console과 Cost Explorer에서 확인할 수 있으며, 비용 통계 데이터의 시각화를 통해 각 영역별 비용 발생 현황을 직관적으로 파악할 수 있습니다.
이 글에서는 문제 해결을 위해 가설-검증 방식을 활용했습니다. 비용 최적화 시에는 특정 문제가 어떤 원인으로 발생했는지 가설을 세우고, 그 원인 변수를 조정하여 비용이 개선되는지 검증하는 방식으로 접근했습니다. 이러한 과학적 접근법은 비용 문제에 대한 합리적인 의사 결정을 가능하게 합니다.
1 ) 불필요한 인스턴스 중단
저자는 EC2와 같은 컴퓨팅 자원에서 불필요한 인스턴스나 과도한 스펙의 인스턴스가 있는지 점검했습니다. 주말에 사용하지 않는 테스트 서버를 중단함으로써 월 평균 $400의 비용을 절감했습니다. 많은 스타트업이 서비스 안정성을 위해 테스트 서버를 상시 운영하는데, 이러한 비용 절감 사례를 적극 활용할 필요가 있습니다.
2 ) ECS 사양 조정
AWS ECS는 컨테이너 기반 애플리케이션의 배포를 돕는 관리형 서비스로, 유연한 자원 관리와 확장이 장점입니다. 저자는 ECS 커맨드를 통해 비동기 백그라운드 작업을 처리하고 있었습니다. 첫 번째로 ECS 커맨드를 Fargate에서 EC2 ASG(Auto Scaling Group)로 전환하여 비용 최적화를 시도했으나, 각 Task의 리소스 스케줄링에 실패했습니다. 두 번째 시도에서는 CloudWatch의 Container Insights로 각 커맨드 서비스의 자원 사용량을 분석했습니다. 분석 결과, 메모리 사용량은 최대 8%, CPU 사용량은 최대 1%에 불과했기에 사양을 낮추기로 결정했습니다. ECS 커맨드 1개당 사양을 2vCPU-4GB Memory에서 0.25vCPU-512MB Memory로 약 1/8 수준으로 줄였고, 주간 모니터링을 통해 월 $1,700의 비용을 절감했습니다.
3 ) ECS 태스크 개수 조정
저자는 ECS 태스크 개수 조정을 통한 비용 절감 가설을 세웠습니다. 2번과 마찬가지로 Container Insights로 성능 지표를 분석한 결과, 배포 시점의 일시적인 스파이크를 제외하면 대부분 리소스 사용률이 40% 이하로 유지되었습니다. 주목할 만한 점은 안정적인 서비스 제공을 위해 사양 다운그레이드 대신 태스크 수를 점진적으로 줄이는 방식을 선택했다는 것입니다. 그 결과 태스크 수를 8개에서 3개로 줄여도 서비스가 안정적으로 운영됨을 확인했습니다.
4 ) AWS 최신 인스턴스 사용, RI 와 Saving Plan
AWS의 RI(Reserved Instances)는 예약형 인스턴스로, 온디맨드 대비 최대 75%까지 비용을 절감할 수 있는 옵션입니다. RI는 자원 사용량이 예측 가능하고 장기간 일정한 워크로드가 있는 경우에 적합합니다. Saving Plan은 1년 또는 3년 기간의 사용량을 약정으로 구매하는 요금 모델입니다. 이는 인스턴스 유형과 가용 영역(AZ, Availability Zone) 변경에 구애받지 않고 할인 혜택을 받고자 할 때 적합한 옵션입니다. 또한 최신 세대 인스턴스는 기존 세대(https://aws.amazon.com/ko/ec2/previous-generation/)와 동일한 사양임에도 더 저렴한 가격을 제공합니다.
인사이트
비용 최적화에도 가설-검증 방식을 효과적으로 적용할 수 있다
AWS Billing Console과 Cost Explorer로 비용을 분석하고, 유휴 상태이거나 과도하게 설정된 인스턴스를 최적화하여 비용을 절감할 수 있다.
CloudWatch Container Insights로 자원 사용량을 분석하여 실제 사용량이 낮은 서비스의 사양을 하향 조정함으로써 비용을 절감할 수 있다.
ECS 태스크 수를 적절히 조정하여 비용을 최적화할 수 있다.
AWS RI(Reserved Instances)와 Saving Plan을 활용하면 비용 절감할 수 있다.
EC2와 RDS는 최신 세대 인스턴스를 사용하면 이전 세대 대비 약 10% 비용을 절감할 수 있다.