AWS 리소스 비용 점검 및 최소화 기록
현재 프로젝트에서 사용하지 않는 AWS 리소스를 점검하고, 불필요한 비용을 최소화하기 위해 진행한 과정을 공유합니다. 주로 EC2, VPC, ECR을 확인했으며, 최종적으로 매월 약 833원의 최소 비용만 발생하도록 정리했습니다.
EC2
현재 EC2 서버는 완전히 중지된 상태라서 인스턴스 실행 요금(전기세 개념)은 나오지 않습니다. 다만, 서버를 다시 켤 수 있도록 이전 상태를 AMI 및 스냅샷으로 백업해둔 상황입니다.
EC2 인스턴스 실행 요금은 서버가 켜져 있을 때만 발생합니다. 현재는 서버를 종료했기 때문에 월 요금의 약 90%에 해당하는 부분이 절감됩니다. 하지만, 하드디스크 스냅샷은 클라우드 상의 S3에 보관되며, 이 보관에 따른 스토리지 비용이 계속 청구됩니다. 따라서, 완전히 0원은 불가능하고 최소한의 보관 요금은 필수로 발생합니다.
현재 스냅샷의 용량 합은 16GB 입니다.
- 스탠다드 티어 기준 요금: 16 x 0.80/월 (약 1,108원)**
- 하지만, 일부 스냅샷을 장기보관(Archive) 티어로 전환하여 비용을 줄였습니다.
최종적으로 스냅샷 2개 중, 1개는 스탠다드, 1개는 아카이브로 정리했습니다.
- 8GB 스탠다드: 8 x 0.40
- 8GB 아카이브: 8 x 0.10
- 합계: $0.50/월 (약 693원)
결론: EC2 스냅샷 보관 비용 693원/월 발생
VPC
현재 계정에 보유한 VPC 리소스를 점검해본 결과는 다음과 같습니다.
- VPC (2)
- 서브넷 (4)
- 라우팅 테이블 (3)
- 인터넷 게이트웨이 (1)
- DHCP 옵션 세트 (1)
- 네트워크 ACL (2)
- 보안 그룹 (3)
위 리소스들은 모두 무료로 제공되는 항목이며, NAT 게이트웨이 같은 과금 리소스는 존재하지 않았습니다.
결론: VPC 관련 비용 없음
ECR
ECR에는 총 5개의 리포지토리가 있었는데, 이 중 실제로 서비스에서 사용하는 리포지토리는 chatbotv2175e9598/fastapifunctionead79d0drepo임을 확인했습니다. 따라서 해당 리포지토리의 마지막 이미지만 남기고 나머지는 정리했습니다.
추가로 bom1215/chatbot-api 리포지토리에 용량이 큰 이미지가 있었는데, 단일 아키텍처 이미지임을 확인했고 운영 Lambda/ECS에서 참조 중이지 않은 것도 검증했습니다.
따라서 이 이미지는 삭제 대상이었으며, 삭제 후 남아 있는 이미지는 1.03GB 크기였습니다.
ECR 저장 요금은 $0.10/GB-월 이므로,
- 1.03GB x 0.103 ≈ 140원/월**
결론: ECR 보관 비용 140원/월 발생
수명 주기 추가
기능 개발을 마치고 origin main branch에 코드가 올라갈 때마다 ECR에 새로운 이미지 추가가 된다. 이럴 경우, 위에서 산정한 ECR 보관 비용에 추가로 요금이 발생한다. 따라서 매번 이미지를 삭제하는 것보다는 ECR의 Lifecycle Policy를 추가하여 사용하지 않는 이미지는 자동으로 삭제할 수 있게끔 하였다.
- 운영 태그(
prod,stable,release,main,latest)는 건드리지 않음 - Untagged: 7일이 지난 건 삭제
- 개발/테스트 태그(dev/test/staging/feature/ci/pr): 30일 지난 건 삭제
최종 결론
- EC2 스냅샷 비용: 693원/월
- ECR 보관 비용: 140원/월
총 비용 = 약 833원/월
즉, 현재 불필요한 리소스를 대부분 정리한 상태에서, 필수 백업과 이미지 보관을 위한 최소 비용만 발생하는 구조로 만들었습니다.
PS
이번 비용 최소화 작업은 서비스 중지를 전제로 진행한 것입니다. 따라서 현재 상태에서는 서버를 원할 때 즉시 재가동하는 것은 불가능하며, 재시작 시에는 추가적인 준비 작업이 필요합니다. 만약 새로운 서비스 운영을 계획하거나 완전히 다른 배포 환경을 구축할 경우, 현재 백업해 둔 AMI 및 스냅샷조차도 삭제해 비용을 0원으로 만들 수 있습니다. 다만 이러한 결정은 단순 기술적 선택을 넘어 이해관계자의 사업적 판단이 수반되어야 하므로, 이 부분은 별도 협의가 필요합니다.