7편에서 제가 자랑했잖아요. 미국에 공짜 위성(GCP) 하나 띄웠다고.
그 위성이, 알고 보니 조용히 사고를 치고 있었어요. GCP 무료 트래픽 한도를 넘겨서, 하마터면 돈이 나갈 뻔했거든요.
어느 날, 상태봇이 이런 걸 띄웠어요
저는 텔레그램 상태봇으로 수시로 서버 상태를 확인하는 습관이 있어요. 그날도 별생각 없이 “상태”를 쳤는데, 이런 게 떠 있었어요.

“이번달 예상 트래픽 1.03GB / 1GB.”
GCP 무료 한도가 한 달에 1GB(Google Cloud 무료 등급 문서)인데, 그걸 넘겼다는 거예요.
무료라며? 그럼 돈 나가는 거야?
솔직히, CPU랑 메모리만 신경 쓰고 있었어요. 트래픽이 발목을 잡을 줄은 상상도 못 했거든요.
다행히, 돈은 안 나갔어요
먼저 안심부터 하고 갈게요. 결제 화면을 열어봤어요.

지금까지 쓴 231원도 전부 무료 체험판 크레딧에서 깎인 거였어요. 실제로 카드에서 빠져나간 돈은 0원.
근데 안심만 하고 넘어갈 순 없었어요. 이 크레딧은 언젠가 끝나거든요. 그때부턴 진짜 청구돼요.
그러니까 크레딧이 막아주는 지금, 이 새는 구멍을 막아둬야 했어요.
진짜 범인 — 밖에서 사이트 두드리던 감시병
컨테이너별로 누적 트래픽을 재봤더니, 범인이 딱 나왔어요.
블랙박스 익스포터(blackbox exporter). 8일 만에 7.21GB.
이게 뭐냐면, 7편에서 “위성이 밖에서 itnoper.com이 열리는지 두드려본다”고 했던 그 담당이에요. 근데 이 녀석이 트래픽을 통째로 먹고 있었어요.
왜 이렇게 많이 먹었냐면요.
GET의 함정 — 매번 집을 통째로 사진 찍고 있었어요
블랙박스가 사이트를 확인하는 방식이 문제였어요. ※ 블랙박스 익스포터 : 밖에서 웹사이트가 열리는지 실제로 두드려보는 도구예요. (공식 저장소)
※ GET : 웹페이지의 내용 전체를 다 받아오는 방식. ※ HEAD : “응답 오나 안 오나(상태 코드)”만 확인하고, 내용은 안 받는 방식.
블랙박스는 “사이트 살았나 죽었나”만 확인하면 되는데, 매번 GET으로 워드프레스 페이지 전체를 통째로 받아오고 있었어요. 그것도 15초마다, 8개 사이트나요.
택배가 왔는지 확인하려고 송장만 보면 되는데, 매번 상자를 다 뜯어서 내용물을 확인하고 있던 거죠.
게다가 그 8개 목록엔 8편에서 이미 지운 넷데이터도 들어있었어요. 죽은 사이트를 15초마다 계속 두드리고 있었던 거예요.
감시병 셋을 다 뜯어고쳤어요
여기서 중요한 걸 깨달았어요. GCP는 메인 서버가 아니라 보조 수단이에요. 오라클이 진짜 본진이고, GCP는 그저 밖에서 지켜보는 눈일 뿐이거든요. 그런 보조 서버를, 그리고 보조 서버가 오라클을 살피는 것을, 몇 초마다 촘촘하게 할 이유가 전혀 없었어요.
그 관점으로 보니, 손볼 데가 하나가 아니었어요.
1. 블랙박스 — 죽은 대상(넷데이터)·불필요한 대상(구글) 빼고, 진짜 중요한 itnoper.com 하나만 남겼어요. 주기도 15초에서 2시간으로 확 늘리고요.
2. 노드 익스포터 스크랩 — 오라클(본진)이 GCP 위성을 15초마다 들여다보고 있었는데, 이것도 태평양을 건너는 트래픽이라 요금이 붙었어요. 10분으로 늘렸다가, 그래도 아쉬워서 30분까지 더 늘렸어요.
3. 업타임 쿠마 — 여기서 끝이 아니었어요. 쿠마도 itnoper.com을 60초마다 확인하고 있길래, 이것도 10분으로.

하나 잡으면 또 나오고, 또 나오고. 공짜 하나 지키자고 감시병 셋을 다 뜯어고쳤네요.
결과 — 이만큼 줄었어요

숫자로 보면 확실해요.
- 손보기 전 : 하루 약 900MB (한 달로 치면 27GB, 무료 한도의 27배)
- 1차 손본 후(블랙박스 2시간·1개 + 노드 익스포터 10분 + 쿠마 10분) : 하루 약 30MB (한 달 약 909MB)
약 30배 줄었어요. 한 달 예상치가 무료 한도(1GB) 91% 수준까지 내려왔는데, 여유가 그리 넉넉하진 않아서 노드 익스포터 스크랩 주기를 30분으로 한 번 더 늘렸어요. (★ 30분 적용 후 최종 수치 확인 예정)
그럼 오라클은 괜찮나? — 돌아봤어요
이 사건 이후, 내친김에 메인 서버인 오라클도 돌아봤어요. 오라클 프리티어만 쓸 땐 트래픽 같은 건 상상도 못 하던 일이었거든요.

35일 동안 13.9GB. 하루 400MB 정도예요.
근데 오라클은 전혀 문제가 없었어요. 무료 트래픽 한도가 GCP(월 1GB)랑은 자릿수가 다른 월 10TB거든요. 13.9GB는 한도의 0.1%도 안 돼요.
같은 감시 구조인데 왜 GCP만 사달이 났냐면, 결국 한도의 차이예요. GCP는 그릇이 1GB로 짜서 조금만 넘쳐도 경고가 뜨고, 오라클은 그릇이 어마어마하게 커서 신경 쓸 일이 없는 거죠.
공짜에도 관리비가 든다
이번에 배운 게 있어요.
무료라고 손 놓고 있으면, 어느새 한도를 넘겨서 돈을 부를 수 있어요. “공짜 위성”도 공짜로 유지되려면, 가끔 들여다보고 새는 구멍을 막아줘야 하더라고요.
그리고 이걸 제때 발견한 건, 순전히 텔레그램 상태봇으로 수시로 서버를 확인하는 습관 덕분이었어요. 그 습관이 없었으면 크레딧이 조용히 다 깎일 때까지 몰랐을 거예요.
물론 이번에도 범인 찾고 고치는 건 다 AI한테 물어가며 했어요. 로그 보는 법도, 트래픽 재는 명령어도, 설정 고치는 법도요. 비개발자가 혼자 다 아는 척 안 해요. 모르면 물어보고, 대신 “무엇을, 왜”는 제가 쥐고 있어요.
다음 편엔, 이 서버를 바깥에서 노리는 진짜 위협을 막는 이야기를 해볼게요. 관제팀은 다 꾸렸으니, 이제 문 앞에 경비를 세울 차례예요. CrowdSec으로 오라클 서버에 보안을 입혀볼게요.
IT 전공했지만 그 길을 떠난 지 10년, 지금은 현장에서 6년째 일하고 있어요. 개발자는 아니에요. AI한테 밀려나지 않으려고, 남의 땅 말고 내 땅에 서버 하나 직접 굴리면서 배운 걸 기록합니다. 소개 →













