-
[AWS][비용]EC2를 꺼도 요금이 나오는 항목을 EBS와 Public IPv4 기준으로 확인하기기타개발지식/풀스택개발 2026. 6. 20. 14:04
IT 실무 리서치
[AWS][비용]EC2를 꺼도 요금이 나오는 항목을 EBS와 Public IPv4 기준으로 확인하기
EC2 인스턴스를 stopped 상태로 바꿔도 모든 비용이 멈추는 것은 아니다. 컴퓨팅 요금은 줄어도 EBS 볼륨, 스냅샷, Elastic IP, Public IPv4 관련 비용은 남을 수 있으므로 Billing에서 항목을 확인하고 EC2 콘솔에서 리소스를 찾아야 한다.
1. 개요
테스트 서버를 꺼뒀는데도 비용이 나오면 EC2 Instances 화면만 보고 끝내면 안 된다. stopped는 컴퓨팅 실행 상태를 멈추는 것이고, 연결된 저장소나 주소 리소스까지 자동으로 없애는 뜻은 아니다.
확인 순서는 Billing에서 서비스별 비용 항목을 먼저 보고, EC2 콘솔에서 리전별 Volumes, Snapshots, Elastic IPs, Public IPv4 주소를 찾는 방식이 좋다. 삭제 전에는 스냅샷 필요 여부와 DNS 연결 상태를 확인한다.
2. 꺼도 남는 비용 지도
EC2 비용이라고 보여도 내부 항목은 여러 갈래다. 인스턴스 사용량이 0이어도 EBS GB-month, Snapshot storage, Public IPv4, Elastic IP 주소 보유 비용이 남을 수 있다.
아래 흐름은 실제 점검 순서다. 인스턴스를 껐다는 사실보다 어떤 리소스가 계정에 남았는지를 먼저 찾아야 한다.
리전 드롭다운을 바꾸지 않으면 다른 리전에 남은 볼륨을 놓칠 수 있다. 비용이 작은데 계속 반복된다면 리전별로 한 번씩 확인한다.
3. Billing에서 먼저 좁히기
공식 문서는 stopped 상태가 무엇을 멈추는지 확인하는 출발점으로만 쓴다. 실제 원인은 Billing과 리소스 목록에서 좁힌다.
문서 확인 후에는 Billing 화면으로 이동한다. 비용 항목 이름을 보고 EBS인지 IPv4인지 구분해야 콘솔에서 찾을 메뉴가 정해진다.
Billing에서는 금액보다 항목 이름을 먼저 본다. 네모 박스가 표시된 줄처럼 `VolumeUsage`가 보이면 인스턴스가 아니라 Volumes 화면으로 가야 한다.
Public IPv4와 Elastic IP는 이름이 비슷해도 확인 화면과 처리 방식이 다를 수 있다. 고정 주소를 release하기 전에는 DNS, 보안그룹, 외부 allowlist 연결을 확인한다.
4. Volumes와 Public IPv4 확인
EC2 콘솔에서는 Volumes 메뉴에서 상태 필터를 본다. 화살표가 가리키는 available 상태는 비용은 나가지만 인스턴스에 붙어 있지 않을 수 있다.
root volume이 stopped 인스턴스에 붙어 있다면 삭제 대상이 아닐 수 있다. 반대로 오래된 unattached 볼륨은 스냅샷 필요 여부를 판단한 뒤 정리한다.
예제의 인스턴스 ID와 IP는 샘플이다. 운영 계정의 실제 ID, 계정 번호, 고정 IP는 공개 문서나 캡처에 그대로 남기지 않는다.
CLI 출력은 콘솔보다 빠르게 후보를 좁힐 때 좋다. 아래 화면에서 박스 처리할 줄은 available 볼륨과 unattached 주소다.
삭제는 되돌리기 어렵다. 스냅샷이 필요한지, 배포 스크립트나 DNS가 해당 IP를 참조하는지 확인한 뒤에만 진행한다.
5. 삭제 전에 확인할 것
- 스냅샷이 필요한 데이터인지 확인한다.
- Elastic IP를 release하기 전 DNS와 외부 allowlist를 확인한다.
- 리전 드롭다운을 모두 확인한다.
- 삭제 후 Billing 반영은 즉시가 아닐 수 있으므로 다음 비용 업데이트를 기다린다.
6. 결론
EC2를 껐는데 비용이 남는 문제는 인스턴스 상태보다 남아 있는 리소스 목록으로 봐야 한다.
Billing 항목에서 EBS, Snapshot, Public IPv4, Elastic IP를 구분하고, EC2 콘솔에서 리전별 Volumes와 주소 리소스를 확인하면 원인을 훨씬 빨리 좁힐 수 있다.
7. 참고 링크
'기타개발지식 > 풀스택개발' 카테고리의 다른 글
[Cloudflare Workers][비용]CPU time과 subrequests 제한을 배포 전에 확인하는 법 (0) 2026.06.20 [Docker][보안]Dockerfile ARG와 ENV에 비밀값을 넣으면 안 되는 이유 (0) 2026.06.20 [GitHub][보안]Fine-grained PAT 만들 때 권한과 만료일을 어디까지 줄여야 하나 (0) 2026.06.20 [ChatGPT][업무자동화]Projects와 Custom GPT 차이를 실제 사용 기준으로 정리하기 (0) 2026.06.20 [OpenAI][Structured Outputs] JSON mode와 Structured Outputs 차이를 실무 기준으로 정리하기 (0) 2026.06.20