Fullmoon System

AWS 요금 폭탄 방지: 프리티어 확인·예산 알림·EC2 과금 정리

AI_Manager

실습용 EC2를 껐는데 다음 날에도 비용이 늘어난다. 프리티어를 선택했으니 무료라고 생각했는데 청구 화면에는 금액이 찍힌다. 이때 인스턴스를 다시 켜서 살펴볼 필요는 없다. 먼저 확인할 곳은 청구 내역의 서비스·리전·사용 유형이다.

AWS 요금 폭탄 방지는 계정의 무료 혜택을 확인하고, 비용 알림을 설정하고, 실습이 끝난 리소스를 정리하는 일에서 시작한다. EC2 중지 버튼 하나로 이 세 가지가 해결되지는 않는다. 아래 내용은 개인 실습 계정과 소규모 온디맨드 환경을 기준으로 작성했다. 요금과 프리티어 정책의 확인일은 2026년 9월 20일이다.

지금 비용이 늘고 있다면 먼저 할 일

  1. Billing and Cost Management의 Bills를 연다. 이번 달 비용을 서비스별로 펼쳐 과금된 리전과 사용 유형을 기록한다.
  2. 해당 리전에서 리소스를 찾는다. 서울에 서버가 없더라도 다른 리전에 실습 자원이 남아 있을 수 있다.
  3. 사용하지 않는 자원의 과금 원인을 제거한다. EC2만 중지하고 끝내지 말고 EBS, 탄력적 IP, NAT Gateway 등 연결된 자원까지 확인한다. 삭제 전에는 데이터와 서비스 연결 관계를 검토한다.
  4. 비용 알림을 만든다. 이미 발생한 금액을 지우는 기능은 아니지만, 다음 실습에서 문제를 늦게 발견하는 일을 줄인다.

청구 화면을 읽는 방법은 AWS 청구서 확인 문서에서 확인할 수 있다. 조치 직후에도 이전 사용량이 늦게 반영될 수 있으므로, 합계가 잠시 늘었다는 이유만으로 정리가 실패했다고 판단하지 않는다.

AWS 프리티어, 가입일에 따라 확인할 조건이 다르다

검색으로 찾은 ‘EC2 월 750시간, 12개월 무료’ 안내를 지금 만든 계정에 그대로 적용하면 계산이 어긋난다. AWS는 2025년 7월 15일 신규 고객용 프리티어를 크레딧 기반으로 바꿨다.

계정 구분 확인할 조건 놓치기 쉬운 부분
2025년 7월 15일 이전 생성 기존 서비스별 무료 한도와 가입 후 경과 기간 12개월 혜택은 매년 갱신되지 않는다. 이 글의 확인일에는 해당 계정의 12개월 기간이 이미 지났다.
2025년 7월 15일 이후 생성, Free plan 남은 크레딧과 최대 6개월의 이용 기간 기간 만료 또는 크레딧 소진 중 먼저 도달한 시점에 무료 플랜이 끝난다.
Paid plan 크레딧 적용 대상·잔액·만료일과 실제 사용량 크레딧으로 충당되지 않는 비용은 청구될 수 있다.

신규 고객은 가입 시 100달러 크레딧을 받고, 정해진 활동을 수행하면 추가로 최대 100달러를 받을 수 있다. 가입만 하면 무조건 200달러가 생기는 것은 아니다. Free plan에서는 유료 플랜으로 전환하지 않는 한 요금이 청구되지 않지만, 사용할 수 있는 서비스에 제약이 있다. 무료 플랜 종료 후 계속 운영하려면 전환 조건을 확인해야 한다. AWS Free Tier FAQ

콘솔에서 자신의 플랜, 크레딧 잔액, 만료일을 먼저 확인하자. 예전 계정의 12개월 혜택이 끝났다고 모든 서비스의 무료 제공량까지 사라지는 것은 아니다. 서비스마다 적용 조건이 다르므로, 신규 크레딧과 기존 무료 한도를 합쳐서 계산하지 않는 편이 정확하다. EC2 프리티어 적용 기준

AWS Budgets 알림 설정: 월 10달러 실습 예산 예시

개인 실습에서 월 10달러까지 쓰기로 했다면, 그 금액에 도달하기 전에 메일을 받도록 설정한다. 다음 금액은 설명용 예시다. 이미 운영 중인 서비스에는 평소 사용액에 맞춘 기준이 필요하다.

  1. Billing and Cost Management → Budgets → Create budget으로 이동한다.
  2. Customize (advanced) → Cost budget을 선택한다.
  3. 기간은 Monthly, 갱신은 Recurring, 금액 설정은 Fixed로 지정하고 예산에 10 USD를 입력한다.
  4. 처음에는 특정 서비스나 리전 필터를 넣지 않고 계정 전체 비용을 대상으로 한다. 필터를 좁히면 다른 서비스에서 발생한 금액을 놓칠 수 있다.
  5. 실제 비용 알림을 10%·50%·100%로 나눠 설정한다. 이 예시에서는 1달러·5달러·10달러 기준이다. 예측 비용 100% 알림도 추가하면 월말 초과 가능성을 확인하는 데 도움이 된다.
  6. 실제로 확인하는 이메일 주소를 입력하고 저장한다. SNS를 선택했다면 구독 확인과 전송 권한도 설정해야 한다.

크레딧 적용 후 예상 청구액을 볼 것인지, 크레딧 차감 전 자원 사용 비용을 볼 것인지도 구분해야 한다. 실습 자원이 얼마나 비용을 쓰는지 감지하려면 예산의 고급 옵션에서 크레딧 포함 여부를 확인한다. 잔액이 넉넉하다는 이유로 사용량 증가가 가려지지 않도록 하려는 설정이다. 비용 예산 생성 절차 · 예산에 포함할 비용 항목

예산 10달러는 결제 상한선이 아니다. 알림만 설정하면 10달러를 넘어도 리소스는 계속 실행된다. 사용량 집계와 알림 사이에 지연도 있다. 별도의 Budgets Actions를 구성할 수 있지만 대상과 권한을 지정해야 하며, 계정의 모든 과금을 실시간으로 멈추는 장치로 보면 안 된다. AWS Budgets 동작과 알림 지연

실제 AWS 화면에서 입력 위치 확인하기

아래는 AWS 공식 실습 가이드의 콘솔 화면에 빨간 박스와 번호를 추가한 이미지다. 원문은 2025년 10월 8일 갱신된 자료로, 현재 콘솔의 배치·문구는 다를 수 있다. 화면은 간편 템플릿의 100달러 예시이며, 위에서 설명한 고급 설정의 10달러 예산과 구분해서 보자.

AWS Budgets 실제 설정 화면: 고급 설정, 예산 금액, 이메일, 기본 알림 조건, 생성 버튼을 빨간 박스 1~5로 표시
그림 1. AWS 공식 예산 설정 화면에 강조 표시 추가. 클릭하면 크게 볼 수 있다. 표시 없는 원본
  1. ① Customize (advanced): 본문의 10%·50%·100% 알림을 직접 지정하려면 이 경로를 선택한다. 선택 후에는 화면 구성이 달라진다.
  2. ② 예산 금액: 간편 템플릿을 쓴다면 이 칸에 월 예산을 입력한다. 이 글의 실습 기준은 10.00 USD다. 화면의 100.00을 그대로 복사하지 않는다.
  3. ③ 이메일: 예시 주소 대신 알림을 받을 본인 주소를 입력한다.
  4. ④ 기본 알림: 이 템플릿은 실제 비용 85%·100%, 예측 비용 100%를 안내한다. 앞서 제안한 사용자 지정 기준과 다르다.
  5. ⑤ Create budget: 금액·수신처·알림 조건을 확인한 뒤 생성한다.
AWS 공식 예시의 예산 생성 완료 화면: 상단 성공 메시지와 예산 목록 확인
그림 2. 생성 후에는 성공 메시지와 목록의 예산 금액을 확인한다. 화면의 100달러는 공식 예시 값이다. 출처: AWS 공식 실습 가이드.

생성 완료는 과금 차단 완료를 뜻하지 않는다. 저장한 예산에서 수신처와 알림 조건을 다시 확인한다.

EC2 중지 후에도 요금이 나오는 이유

일반적인 EBS 기반 온디맨드 EC2는 stopped 상태가 되면 인스턴스 실행 사용료가 멈춘다. 그러나 디스크와 IP 주소는 별도 자원이다. 서버를 다시 켰을 때 데이터를 그대로 사용할 수 있는 이유도 EBS 볼륨이 계속 보관되기 때문이다. EC2 상태별 과금 기준

자원 EC2만 중지했을 때 실습 종료 후 확인
EC2 인스턴스 일반 온디맨드 실행 사용료 중단 일시 중지인지, 더 이상 필요 없는 인스턴스인지 구분
EBS 볼륨 스토리지 과금 유지 미연결 볼륨과 종료 시 삭제 설정 확인
EBS 스냅샷 보관 비용이 별도로 남음 복원에 필요한 시점만 보존하고 불필요한 스냅샷 검토
탄력적 IP 계정에 할당된 주소의 과금 유지 사용하지 않는 주소는 연결 해제뿐 아니라 할당 해제까지 확인
NAT Gateway EC2 상태와 무관하게 별도 과금 경로 의존성을 확인한 뒤 불필요한 게이트웨이 삭제 검토

인스턴스 종료(terminate) 시 EBS가 모두 삭제된다고 가정해서도 안 된다. 볼륨마다 DeleteOnTermination 설정이 다를 수 있다. 스냅샷도 별도로 남는다. 데이터를 다시 쓸 예정이라면 보존 비용을 받아들일지, 필요한 백업만 남길지 결정한 뒤 정리한다. EC2 종료와 볼륨 보존 · EBS 볼륨·스냅샷 요금

예약 인스턴스나 Savings Plans 약정 비용은 별개다. 인스턴스를 껐다고 약정까지 없어지지 않는다. 사용 패턴이 정해지지 않은 짧은 실습에서 할인율만 보고 장기 약정을 선택하면, 쓰지 않는 시간에도 비용 부담이 남을 수 있다. 예약 인스턴스 결제 옵션

EBS 볼륨 확인: 중지한 서버의 디스크 찾기

  1. 청구된 리전으로 전환한 뒤 EC2 → Elastic Block Store → Volumes(볼륨)를 연다. 인스턴스에 붙어 있는 디스크부터 찾으려면 Instances에서 서버를 선택하고 Storage의 블록 디바이스에 표시된 볼륨 ID를 누른다.
  2. 볼륨 목록에서 상태, 크기, 유형, 연결된 인스턴스를 확인한다. in-use는 연결된 상태이며, 서버를 중지해도 볼륨은 남는다. available은 연결되지 않은 상태라는 뜻이지 무료라는 뜻이 아니다.
  3. 연결되지 않은 볼륨은 이름·태그·소유자를 확인한다. 필요한 데이터인지, 복구 가능한 백업이 있는지 확인한 뒤 정리한다. 추가 IOPS나 처리량을 설정했다면 그 항목도 확인한다.
AWS EC2 볼륨 목록에서 EBS 볼륨의 Available 상태와 크기를 확인하는 실제 공식 예시 화면
그림 3. AWS 공식 볼륨 화면. 기존 초록색 강조의 Available은 미연결 상태를 뜻한다. 파란색 optimizing은 볼륨 변경 진행 상태이며, 무료 여부와 관계없다. 이미지의 용량과 ID는 예시다. 출처: AWS EBS 문서. 이미지를 누르면 크게 볼 수 있다.

상태별 의미와 조회 방법은 EBS 볼륨 정보 확인 문서에서 확인할 수 있다. 현재 리전에 목록이 비어 있어도 다른 리전까지 정리됐다는 뜻은 아니다.

EBS 스냅샷 확인: 삭제한 서버의 백업도 살펴보기

  1. EC2 → Elastic Block Store → Snapshots(스냅샷)를 열고 조회 범위를 Owned by me(내 소유)로 선택한다.
  2. 스냅샷을 선택해 원본 볼륨 ID, 생성 시각, 설명·태그와 Storage tier(스토리지 계층)를 확인한다. 원본 서버나 볼륨을 삭제했더라도 스냅샷은 남아 있을 수 있다.
  3. 보관 정책과 AMI·백업의 복구 용도를 확인한다. Completed는 생성 완료, Archive는 보관 계층을 나타낸다. 둘 다 무료 보관을 뜻하지 않는다.
EC2 Snapshots의 내 소유 필터와 Storage tier 탭에서 스냅샷 보관 계층을 확인하는 AWS 공식 화면
그림 4. AWS 공식 예시의 노란 화살표가 Storage tier 탭과 Archive 값을 가리킨다. 이 화면은 아카이브 상태를 설명하는 예시이며, 무조건 아카이브로 변경하라는 뜻은 아니다. 출처: AWS Storage Blog(2023).

목록의 Volume size는 복구할 볼륨의 크기다. 이를 그대로 스냅샷 과금 용량으로 계산하면 안 된다. 전체 스냅샷 크기 역시 증분 저장에 따른 실제 청구량과 구분해야 한다. 화면의 정보는 스냅샷 조회 문서, 실제 비용은 Bills에서 각각 확인한다.

퍼블릭 IPv4와 NAT Gateway 비용은 따로 계산한다

AWS 제공 퍼블릭 IPv4 주소의 기본 요금은 주소 하나당 시간당 0.005달러다. 30일 내내 하나를 사용한다고 가정하면 0.005 × 24 × 30 = 3.60 USD다. 이 금액은 IP 주소만 계산한 예시이며 EC2·디스크·트래픽·세금은 포함하지 않는다. 크레딧이나 무료 혜택 적용 전 기준이다. 사용 중인 주소도 과금 대상이므로, 탄력적 IP를 실행 중인 서버에 연결하면 무료라는 옛 안내는 현재 기준으로 맞지 않는다. Amazon VPC 퍼블릭 IPv4 요금

자동 할당된 퍼블릭 IPv4는 EC2 중지 시 반환되지만, 탄력적 IP는 유지된다. 두 주소를 같은 것으로 생각하면 정리 후에도 비용이 남는 이유를 찾기 어렵다. EC2 중지 시 유지·해제되는 자원

NAT Gateway는 만들어 둔 시간과 처리한 데이터에 따라 비용이 발생한다. 연결된 EC2에 접속하지 않았다고 비용이 0원이 되는 구조가 아니다. VPC 생성 마법사에서 여러 가용 영역에 NAT Gateway를 만들었다면 게이트웨이 개수도 확인한다. 시간당 단가는 리전별로 다르므로 서울 리전 실습에 다른 리전의 예시 금액을 그대로 대입하지 않는다. Amazon VPC NAT Gateway 요금

작은 실습 환경에서 NAT Gateway가 필요한지는 네트워크 설계 단계에서 판단할 문제다. 비용을 줄이려고 데이터베이스를 무작정 퍼블릭으로 바꾸거나 인바운드를 전체 개방하는 방식은 피한다.

퍼블릭 IPv4 확인: 어느 서비스가 쓰는 주소인지 추적하기

  1. VPC IPAM 콘솔 → Public IP insights를 연다. 아래 그림의 이 메뉴다. ② Unassociated Elastic IP addresses 알림과 ③ EIP usage에서 연결되지 않은 탄력적 IP가 있는지 확인한다.
  2. ④ Public IP addresses 목록에서 주소별 서비스, 네트워크 인터페이스 ID, 인스턴스 ID와 연결 상태를 살펴본다. 인스턴스 ID가 비어 있어도 NAT Gateway나 로드 밸런서가 사용하는 주소일 수 있다. Associated는 연결됐다는 뜻이며, 트래픽 발생 여부를 뜻하지 않는다.
  3. 탄력적 IP만 직접 확인하려면 EC2 → Network & Security → Elastic IPs로 이동한다. 주소를 선택해 Allocation ID, Association ID와 연결된 네트워크 인터페이스·인스턴스를 확인한다. 자동 할당된 퍼블릭 IP는 EC2의 Instances에서 인스턴스를 선택해 Networking의 Public IPv4 address를 확인한다.
  4. 불필요한 탄력적 IP는 연결 용도를 확인한 뒤 Release Elastic IP addresses(탄력적 IP 주소 릴리스)로 반환한다. Disassociate(연결 해제)만 하면 주소가 계정에 남아 과금될 수 있다. 릴리스한 주소는 같은 주소로 다시 받을 수 있다고 보장되지 않으므로 DNS나 외부 허용 목록에서 사용하는지 먼저 확인한다.
AWS Public IP insights 실제 예시 화면에 메뉴, 미연결 탄력적 IP 알림, EIP 사용 현황과 주소 목록을 빨간 박스로 표시
그림 5. AWS 공식 화면에 빨간 박스와 번호를 추가했다. ① 메뉴 → ② 미연결 EIP 알림 → ③ 연결 현황 → ④ 개별 주소 순서로 확인한다. 화면의 42개·1개는 AWS 예시 수치다. 출처: AWS Networking Blog(2023). 현재 콘솔 배치는 다를 수 있다.

Public IP insights는 탐색 대상 계정·리전과 권한, 데이터 수집 시점의 영향을 받는다. 목록이 비어 있으면 조회 범위와 갱신 시점을 확인하고 EC2 콘솔에서도 교차 확인한다. 자세한 범위는 Public IP insights 문서, 반환 절차는 탄력적 IP 릴리스 문서를 참고한다.

NAT Gateway 확인: 상태·연결 IP·트래픽·라우팅 확인하기

  1. VPC 콘솔 → NAT gateways에서 청구된 리전의 게이트웨이를 선택한다. NAT Gateway ID와 VPC를 기록하고, 아래 그림의 ① Availability mode와 Connectivity type, ② State를 확인한다. Public과 Private, Zonal과 Regional에 따라 표시되는 항목이 다르다.
  2. 퍼블릭 NAT라면 IP 주소 정보에서 연결된 주소와 Allocation ID를 확인한다. 그림의 ④ Associated IP addresses가 해당 영역이다. 주소가 여러 개일 수 있으므로 첫 번째 주소만 확인하고 끝내지 않는다. Private NAT에는 탄력적 IP가 없다.
  3. ③ Monitoring 또는 CloudWatch에서 바이트 전송량과 연결 수를 살펴본다. 정기 작업이 실행되는 시간을 포함해 최근 사용 이력을 확인한다. 트래픽이 0이어도 게이트웨이가 존재하면 시간 요금이 발생할 수 있고, 데이터 없음은 사용량 0과 다르다.
  4. VPC → Route tables → Routes에서 기록한 nat-… ID를 대상으로 하는 경로를 확인한다. 예를 들어 0.0.0.0/0 → nat-… 경로가 있는 서브넷은 해당 NAT를 통해 외부로 나갈 수 있다. Subnet associations도 확인해 영향을 받는 서버와 작업을 찾는다.
Regional NAT Gateway 공식 상세 화면에서 모드와 연결 유형, Available 상태, Monitoring 탭, 연결 IP 목록을 빨간 박스로 표시
그림 6. Regional·Public NAT Gateway의 AWS 공식 예시 화면에 빨간 박스를 추가했다. ① 유형, ② 상태, ③ 트래픽 확인 탭, ④ 연결 IP와 Allocation ID를 살펴본다. ID와 IP는 공식 예시이며 Zonal NAT의 화면 구성은 다를 수 있다. 출처: AWS Networking Blog(2025).

NAT Gateway에는 EC2처럼 중지해 두는 방식이 없다. 필요 없다고 확인되면 삭제를 검토하되, 먼저 이를 사용하는 서브넷의 통신 경로를 정리해야 한다. NAT를 삭제해도 관련 라우팅이 자동으로 지워지지는 않으며, 수동으로 할당했던 탄력적 IP는 별도로 릴리스해야 할 수 있다. NAT Gateway 관리삭제 동작 문서에서 조건을 확인한다.

마지막으로 Bills에서 PublicIPv4 또는 NatGateway가 포함된 사용 유형과 리전을 다시 확인한다. 콘솔 목록은 남은 자원을 찾는 데, 청구 내역은 어떤 항목에 비용이 붙었는지 확인하는 데 사용한다. 로드 밸런서·RDS·VPC 엔드포인트 비용이 보인다면 각각 EC2의 Load Balancers, RDS의 Databases, VPC의 Endpoints에서도 남은 자원을 확인한다.

실습을 끝냈다면 이 순서로 정리한다

삭제 버튼을 누르기 전에 리소스 이름, ID, 리전, 연결된 서비스를 적어 두면 같은 이름의 운영 자원을 잘못 건드리는 일을 줄일 수 있다. Terraform이나 CloudFormation으로 만든 환경은 배포 도구의 삭제 계획부터 확인한다.

  1. 필요한 데이터부터 확보한다. DB 덤프, 업로드 파일, 설정 파일 등 다시 만들 수 없는 데이터를 우선 확인한다. 백업을 남기면 그 저장 비용도 남는다는 점을 기록한다.
  2. 재생성하는 구성을 확인한다. Auto Scaling이나 배포 도구가 관리하는 EC2를 콘솔에서만 종료하면 다시 만들어질 수 있다. 원하는 인스턴스 수와 스택의 리소스 관계를 먼저 확인한다.
  3. 사용한 리전마다 EC2·볼륨·스냅샷·탄력적 IP를 살핀다. 인스턴스 목록이 비었다는 사실만으로 정리가 끝난 것은 아니다.
  4. VPC와 연결 서비스를 확인한다. NAT Gateway, 로드 밸런서, 유료 VPC 엔드포인트처럼 서버 밖의 구성 요소를 검토한다.
  5. RDS와 저장 데이터를 확인한다. DB 인스턴스, 최종 스냅샷, S3 저장 데이터, 로그처럼 따로 남는 항목을 살핀다.
  6. 청구 내역을 다시 확인한다. 정리한 시각을 적고 이후 집계에서 어떤 사용 유형이 계속 늘어나는지 비교한다. 비용 합계 대신 자원별 증가 여부를 봐야 원인을 좁힐 수 있다.

여기서 RDS는 EC2와 다르게 봐야 한다. 중지를 지원하는 RDS DB 인스턴스는 최대 7일 연속 중지할 수 있으며, 그 뒤에는 자동으로 다시 시작된다. 중지 중에도 스토리지와 해당되는 백업 비용은 남는다. ‘DB를 꺼 두었으니 다음 달도 괜찮겠지’라는 가정으로 실습 계정을 방치하면 안 된다. RDS 일시 중지 조건

서버 운영을 계속할 계획이라면 리눅스 디스크·inode 사용량 진단도 함께 확인해 두자. 디스크 부족 문제를 증설만으로 처리하기 전에 어떤 데이터가 늘었는지 파악하면 불필요한 스토리지 확대를 줄일 수 있다.

AWS 과금 관련 자주 묻는 질문

프리티어인데 청구 화면에 금액이 보이면 결제되는 건가요?

화면의 금액만으로 단정할 수 없다. 자원 사용 비용과 크레딧 적용 후 청구액을 구분하고, Free plan인지 Paid plan인지 확인해야 한다. 무료 한도·크레딧 적용 대상·잔액·만료일을 함께 보면 실제 부담할 금액을 판단할 수 있다.

예산을 1달러로 설정하면 1달러까지만 결제되나요?

아니다. 일반적인 Budgets 알림은 지정한 비용 기준을 넘었거나 넘을 것으로 예상될 때 알려 주는 기능이다. 리소스의 실행을 자동으로 막지 않으며, 집계 지연 동안 추가 비용이 생길 수 있다.

EC2를 삭제했는데 다음 날 비용이 늘면 무엇을 확인하나요?

먼저 사용량 반영 지연인지 확인한다. 그다음 남은 EBS 볼륨·스냅샷·탄력적 IP·NAT Gateway와 다른 리전의 리소스를 살핀다. 청구서의 서비스 이름에서 사용 유형까지 펼쳐야 확인할 대상을 좁힐 수 있다.

예상하지 못한 요금은 환불받을 수 있나요?

환불을 전제로 리소스를 방치하면 안 된다. 과금 원인을 먼저 정리하고, 청구 기간·서비스·리전·발견 시각·조치 내용을 준비해 AWS Support의 계정 및 결제 문의로 확인한다. 조정 여부는 개별 검토 대상이다. AWS Support 문의 유형과 접수 방법

다음 실습을 시작하기 전에는 세 가지를 확인하면 된다. 내 플랜과 크레딧의 종료 조건, 비용 알림의 수신처, 실습 후 삭제할 자원 목록. 서버 생성과 정리를 한 작업으로 묶어 두면, 며칠 뒤 청구서에서 잊고 있던 자원을 발견할 가능성도 줄어든다.