매달 40만 원대로 빠져나가던 AWS 요금을, 안 쓰는 개발 환경을 통째로 내려 0원으로 만들 때의 순서와 함정을 정리하는 방법입니다.
1. 먼저 뭐가 돈을 먹는지 전수 조회한다
콘솔을 클릭해 가며 지우면 꼭 뭔가를 놓칩니다. 지우기 전에 CLI로 과금 대상을 전부 한 번에 뽑아 목록으로 만드는 게 먼저입니다. 서버(EC2), 데이터베이스(RDS)가 보통 요금의 대부분이고, 거기에 탄력적 IP(EIP), 볼륨(EBS), NAT 게이트웨이, 로드밸런서가 조용히 붙어 있습니다. 리전을 지정해서 각각 조회하면 "무엇을 어떤 순서로 내릴지"가 한눈에 정리됩니다.

- 서버(EC2), DB(RDS)가 요금의 대부분
- EIP, EBS 볼륨, NAT, 로드밸런서가 조용히 붙어 있음
- 지우기 전에 전수 조회로 목록부터 확보
2. 백업 먼저, 그다음 의존성 순서대로 삭제한다
되돌릴 수 없는 작업이라 백업이 먼저입니다. 서버는 파일시스템을 통째로 받아 두고, DB는 최종 스냅샷을 뜨면서 삭제하면 데이터가 보존됩니다. 그다음 순서가 중요합니다. DB를 최종 스냅샷과 함께 삭제하고, 서버를 종료하고, 종료 후 남는 자원(탄력적 IP, 볼륨)을 정리하는 순서로 갑니다. 서버에 붙어 있는 자원을 먼저 지우려 하면 의존성 때문에 막히니, 위에서 아래로 흐르게 두는 게 깔끔합니다.

- 삭제는 비가역 -> 서버 파일시스템·DB 스냅샷 백업 먼저
- DB는 최종 스냅샷 뜨면서 삭제(데이터 보존)
- DB -> 서버 종료 -> 남은 자원 정리 순서로
3. 숨은 과금 함정 세 가지
리소스를 다 내렸다고 생각해도 요금이 계속 나오는 자리가 있습니다. 첫째, 탄력적 IP(EIP)는 인스턴스에 붙어 있을 때는 무료지만 서버를 종료해 안 붙은 상태가 되면 오히려 과금됩니다. 그래서 종료 후 반드시 릴리즈해야 합니다. 둘째, EBS 볼륨은 인스턴스의 "종료 시 삭제" 설정이 꺼져 있으면 서버를 지워도 orphan 볼륨으로 남아 계속 과금됩니다. 셋째, Route53 호스팅존은 다른 리소스를 전부 내려도 월 $0.5가 계속 붙습니다. 완전히 0원을 원하면 존 안의 레코드를 지우고 호스팅존까지 삭제해야 합니다.

- EIP: 서버 종료 후 안 붙은 IP는 과금 -> 릴리즈
- EBS: "종료 시 삭제" 꺼져 있으면 orphan 볼륨으로 남음
- Route53 호스팅존: 리소스 다 내려도 월 $0.5 남음 -> 레코드 지우고 존 삭제
4. 진짜 0원인지 검증한다
삭제 명령이 성공했다는 로그만 믿으면 안 됩니다. 전수 조회를 다시 돌려 모든 목록이 비었는지 눈으로 확인하는 게 확실합니다. 여기에 더해 "제로 지출 예산(Zero Spend Budget)" 알림을 걸어 두면, 앞으로 단돈 몇 원이라도 과금될 때 이메일이 옵니다. 한 가지 주의할 점은, 다 내려도 그달에 이미 쓴 사용분은 다음 달 초에 마지막으로 한 번 청구된다는 것입니다. 이건 새 과금이 아니라 과거 사용분 정산이라, 그 뒤로 조용하면 성공입니다.
- 삭제 로그 말고 전수 재조회로 "다 비었는지" 눈으로 확인
- 제로 지출 예산 알림으로 이후 과금 자동 감지
- 이미 쓴 사용분은 다음 달 한 번 정산됨(새 과금 아님)
5. 정리
AWS 요금을 0원으로 내리는 건 순서와 확인이 전부입니다. 지우기 전에 전수 조회로 목록을 만들고, 백업을 먼저 하고, 의존성 순서대로 내리고, EIP·EBS·Route53 같은 숨은 자리를 챙긴 뒤, 전수 재조회와 예산 알림으로 검증하면 됩니다. 다시 세팅할 계획이 있어도 백업만 챙겨 두면 언제든 복구되니, 안 쓰는 환경은 과감히 내려서 요금을 끊는 게 낫습니다.
- 전수 조회 -> 백업 -> 순서대로 삭제 -> 숨은 과금 정리 -> 검증
- EIP·EBS·Route53이 "다 내렸는데 왜 요금이" 의 주범
- 백업만 있으면 재구축은 언제든 가능
함께 보면 좋은 글:
- PowerShell에서 > 리다이렉트로 저장한 파일이 깨질 때 - 이 철거 작업의 서버 백업 중 만난 함정 편
- RDS 스냅샷에서 pg_dump로 SQL 덤프 뽑기 (스냅샷은 SQL 파일이 아니다) - DB를 로컬 .sql로 뽑은 심화편
여기까지 안 쓰는 AWS 인프라를 완전히 내려 요금을 0원으로 만드는 순서와 함정에 대해서 작성해봤습니다. 여기까지 읽어주셔서 감사합니다!
'일상' 카테고리의 다른 글
| 레거시 자바 JDK 1.6에서 1.8로 이관할 때 라이브러리를 정말 다 갈아야 할까 (한 번에 변수 하나만 검증) (0) | 2026.07.17 |
|---|---|
| RDS 스냅샷에서 pg_dump로 SQL 덤프 뽑기 (스냅샷은 SQL 파일이 아니다) (0) | 2026.07.17 |
| 스캔한 서명을 배경 투명 PNG로 뽑기 (Python, PIL + numpy) (0) | 2026.07.17 |
| PowerShell에서 > 리다이렉트로 저장한 파일이 깨질 때 (바이너리, UTF-16 인코딩 함정) (0) | 2026.07.17 |
| 규칙 기반 관제에 경량 ML 이상탐지 얹기 (LLM 없이, 내부에서) (0) | 2026.07.10 |