“`html
클라우드 서버 비용 폭탄 맞기 전에 꼭 읽어야 할 글
2022년 여름, 서울 마포구의 한 스타트업 사무실. 창업한 지 14개월 된 대표가 노트북 화면을 내 쪽으로 돌렸습니다. AWS 청구서였습니다. 지난달까지 월 47만 원 나오던 게, 그달은 1,140만 원이 찍혀 있었죠.
그 친구 얼굴이 지금도 생생해요. 울지도 못하고, 웃지도 못하고. 그냥 멍하니 앉아 있었습니다. “형, 이거 해킹당한 거 아니에요?” 해킹이 아니었습니다. 본인이 직접 설정해놓은 클라우드 환경이 그렇게 돌아가고 있었던 거였어요.
—
나도 처음엔 몰랐습니다. 클라우드가 이렇게 무서운 건 줄
솔직히 고백하겠습니다. 제가 처음 클라우드를 기업에 권유하기 시작한 게 2010년대 초반이었는데, 그땐 저도 “이거 쓰면 서버 유지보수비 확 줄고, 초기 투자도 없고, 천국 아닙니까?” 이렇게 말하고 다녔거든요.
그런데 현장에서 2~3년 지켜보니까 뭔가 이상한 거예요. 분명히 클라우드로 넘어갔는데 비용이 줄기는커녕 더 늘어나는 기업들이 속출하는 거라. 처음엔 ‘아, 이 회사는 도입을 잘못했겠지’ 싶었죠. 근데 한 군데가 아니에요. 제가 컨설팅하는 곳마다 똑같은 패턴이 반복되더라고요.
그때부터 제가 본격적으로 파고들기 시작했습니다. 왜 착한 사람들이 클라우드에서 돈을 잃는가. 30년 컨설턴트 인생에서 클라우드 비용 문제는 제가 만난 가장 교묘한 함정 중 하나였습니다.
—
함정 1. “일단 켜두면 되겠지”의 비극
클라우드의 핵심 구조를 한 문장으로 설명하자면, 인터넷에 연결된 거대한 컴퓨터들이 전 세계 데이터 센터에 흩어져 있고, 여러분은 그걸 수도꼭지처럼 켰다 껐다 쓰는 방식입니다. 쓴 만큼 낸다는 거죠.
근데 여기서 대부분의 사람들이 착각을 합니다. “쓴 만큼 낸다”는 말을 “쓰지 않으면 안 낸다”로 이해하는 거예요. 아닙니다. 클라우드는 켜두면 씁니다. 서버 인스턴스를 ‘실행 중(Running)’ 상태로 놔두면, 아무도 접속 안 해도 과금이 됩니다.
인천에 있는 한 이커머스 업체 사례입니다. 개발팀에서 테스트용으로 서버 인스턴스 몇 개를 띄워뒀다가 프로젝트가 끝난 뒤에 깜빡하고 종료를 안 했어요. 6개월간 아무도 몰랐습니다. 청구서가 600만 원 가까이 나오고 나서야 발견했죠. 이런 일이 예외가 아닙니다. 제가 만난 중소기업 열 곳 중 일곱 곳은 이런 ‘좀비 인스턴스’가 하나 이상 살아 있었어요.
—
함정 2. 트래픽 비용, 아무도 설명 안 해줬죠
클라우드 서비스 가입할 때 뭘 봅니까? 보통 서버 컴퓨팅 스펙, 즉 CPU 몇 코어, 메모리 몇 GB 이 가격만 봅니다. 근데 클라우드 비용의 진짜 폭탄은 다른 데 숨어 있어요. 바로 ‘데이터 전송 비용(Egress Cost)’입니다.
데이터를 클라우드 서버 안으로 집어넣는 건(Ingress) 대부분 무료입니다. 근데 밖으로 꺼낼 때(Egress)는 돈이 붙어요. 사용자가 여러분의 앱을 쓰면서 영상을 보거나 파일을 다운받을 때마다, 그 데이터가 서버 밖으로 나가면서 과금이 된다는 거죠.
앞서 말한 마포 스타트업 대표 기억나시죠? 그 친구가 1,140만 원 맞은 이유가 바로 이겁니다. SNS 마케팅이 갑자기 터지면서 앱 다운로드가 폭발했는데, 사용자들이 앱 내 콘텐츠를 엄청나게 소비했거든요. 서버는 멀쩡히 버텼습니다. 근데 그 데이터가 밖으로 나가면서 전송 비용이 천만 원이 넘은 거예요. 대박 났다고 기뻐했다가 청구서 받고 쓰러질 뻔했죠.
—
함정 3. 스펙을 한번 올리면 내리기 싫어진다
이건 심리의 문제입니다. 클라우드는 서버 사양을 올리는 게 클릭 몇 번이에요. 반대로 내리는 것도 클릭 몇 번이고요. 근데 실제로는 올리기만 합니다. 내리는 경우를 저는 거의 못 봤어요.
왜냐. 올릴 때는 이유가 있습니다. “이벤트가 있어서”, “트래픽이 몰릴 것 같아서”. 근데 이벤트 끝나고 나서 원래대로 돌리는 사람이 없어요. 담당자는 “혹시 몰라서”라고 하죠. 결국 스펙 업그레이드는 일방통행입니다. 매달 청구서는 조금씩, 아주 조금씩, 티 안 나게 올라갑니다. 이걸 저는 ‘클라우드 인플레이션’이라고 부릅니다.
수원의 한 B2B 소프트웨어 업체가 딱 이 경우였습니다. 2년 전에 제가 처음 갔을 때 월 클라우드 비용이 230만 원이었어요. 서비스 규모는 거의 그대로인데 2년 뒤에는 890만 원이 나오고 있었습니다. 스펙을 누군가 조금씩 올려놨는데, 아무도 책임지는 사람이 없었어요. 담당자만 세 번 바뀌어 있었고요.
—
함정 4. 무료 티어의 달콤한 함정
AWS, GCP, Azure, 네이버 클라우드. 다들 처음 가입하면 무료 혜택을 줍니다. 1년간 특정 서비스 무료, 혹은 처음 몇 달은 크레딧 제공. 신규 창업자나 개발자들이 이걸 보고 신나서 시작하죠.
문제는 무료 기간이 끝날 때입니다. 그때 갑자기 청구서가 날아옵니다. 이걸 아는 사람은 대비를 하는데, 모르는 사람은 그냥 당합니다. 특히 프리 티어 한도를 초과하는 순간부터 바로 과금이 시작되는데, 이 임계점을 아무도 명시적으로 알려주지 않아요.
제가 만난 한 1인 개발자는 사이드 프로젝트 하나를 무료 티어로 올려뒀다가, 딱 하루 트래픽이 좀 몰렸는데 무료 한도를 초과해버렸습니다. 그 하루 과금이 8만 원이었어요. 금액이 크진 않지만, 그 친구가 받은 충격은 컸습니다. “나는 아직 무료인 줄 알았는데”라고 했으니까요.
—
그래서 어떻게 해야 하는가. 딱 세 가지만 합니다
30년간 수백 개 기업 들여다보면서 제가 낸 결론은 이겁니다. 클라우드 비용 문제는 기술의 문제가 아닙니다. 관리 습관의 문제입니다. 그래서 거창한 기술 솔루션 말고, 당장 내일부터 할 수 있는 것만 말씀드릴게요.
첫째, 예산 알람을 반드시 설정하세요. 지금 당장.
AWS에는 ‘Budgets’, GCP에는 ‘Budget Alerts’, 네이버 클라우드에도 예산 알림 기능이 있습니다. 월 예산의 80%에 도달하면 문자와 메일이 오도록 설정해두세요. 이게 전부입니다. 이것만 해도 1,000만 원 폭탄은 막습니다. 이 기능이 있는 걸 모르거나, 알면서도 안 해놓은 분들이 생각보다 엄청 많아요.
둘째, 월 1회 ‘클라우드 청소의 날’을 운영하세요.
매달 말일, 딱 30분만 투자합니다. 현재 실행 중인 인스턴스 목록을 열어서 하나씩 확인하는 거예요. “이게 왜 켜져 있지?” 싶은 게 있으면 바로 정지(Stop)시킵니다. 삭제가 무서우면 정지만 해도 됩니다. 정지 상태는 과금이 대폭 줄어듭니다.
앞서 말한 인천 이커머스 업체, 이 ‘청소의 날’을 도입하고 첫 달에 테스트 인스턴스 11개를 발견해서 전부 정리했습니다. 그달 청구서가 340만 원 줄었어요. 30분 투자해서 340만 원 번 겁니다.
셋째, 데이터 전송 경로를 설계 단계에서 고민하세요.
서비스 초기에는 별거 아닌 것 같아도, 규모가 커지면 전송 비용이 무시 못 할 수준이 됩니다. 이미지나 동영상처럼 용량 큰 파일은 CDN(콘텐츠 전송 네트워크)을 쓰는 게 직접 서버에서 쏘는 것보다 훨씬 저렴한 경우가 많습니다. 개발팀이 있다면 지금 당장 구조를 점검해보라고 하세요.
혼자 하기 어렵다면, 클라우드 서비스사에서 제공하는 ‘비용 분석 도구’를 쓰세요. AWS Cost Explorer, GCP의 Cost Management 같은 도구들이 “어디서 돈이 제일 많이 나가는지”를 그래프로 보여줍니다. 이걸 한 달에 한 번만 들여다봐도 낭비를 반은 잡을 수 있습니다.
—
마지막으로 드리고 싶은 말
클라우드 자체는 나쁜 게 아닙니다. 정말 훌륭한 도구입니다. 작은 기업이 글로벌 인프라를 쓸 수 있다는 게 10년 전만 해도 상상도 못 할 일이었으니까요.
근데 좋은 도구도 모르고 쓰면 흉기가 됩니다. 전기톱이 좋은 도구라도 사용법 모르고 잡으면 다치는 것처럼요. 저는 클라우드 비용 때문에 무너지는 기업들을 보면서 매번 안타까웠습니다. 돈이 없어서가 아니라, 몰라서 당하는 경우가 대부분이었으니까요.
오늘 이 글 읽고 나서, 지금 당장 여러분 회사의 클라우드 콘솔에 들어가서 이번 달 청구서 한 번만 열어보세요. 예상한 금액이 나오면 다행이고, 모르는 항목이 있으면 그게 바로 여러분 회사에 숨어있는 폭탄입니다.
지금 이 순간, 여러분 회사의 클라우드 계정에서 아무도 모르는 채로 켜져 있는 서버가 몇 개나 있는지, 정말로 아십니까?
“`