웹사이트와 애플리케이션을 쉽게 구축할 수 있는 클라우드 서비스는 유용하지만, 그 결제 시스템은 매우 복잡합니다. 트래픽이나 이용한 컴퓨팅 리소스에 따라 과금하는 종량제 서비스도 있고, 조건을 충족하면 무료로 이용할 수 있는 서비스도 있습니다. 그런 클라우드 서비스의 무료 서비스를 이용한 후 7만 2000달러를 청구받아 파산 직전에 몰린 벤처기업의 창업자가 당시 상황을 블로그에 토로하고 있습니다.

We Burnt $ 72K testing Firebase + Cloud Run and almost went Bankrupt [Part 1] | Milkie Way
https://blog.tomilkieway.com/72k-1/

We Burnt $72K testing Firebase + Cloud Run and almost went Bankrupt [Part 1]

blog.tomilkieway.com


We Burnt $ 72K testing Firebase - Cloud Run and almost went Bankrupt [Part 2 ] | Milkie Way
https://blog.tomilkieway.com/72k-2/

We Burnt $72K testing Firebase - Cloud Run and almost went Bankrupt [Part 2]

blog.tomilkieway.com


실리콘밸리의 IT벤처 'Milkie Way'의 대표인 Sudeep Chauhan 씨는 현재 위치의 뉴스나 이벤트 등을 확인할 수 있는 'Announce'라는 서비스의 개발을 2019년 11월부터 시작했습니다. 테스트 개발은 모바일 애플리케이션 개발 기반인 'Firebase'를 데이터베이스로 하고, 서버없이 코드를 실행할 수 있는 'Google Cloud Run'을 이용하는 형태로 진행되었다고 합니다.

Google Cloud에는 7달러의 예산을 설정했고 Firebase는 무료 서비스를 이용하고 있었습니다만, 이용을 시작한 다음날 Firebase로부터 'Google Cloud의 엑티비티에 의해 계정이 업그레이드 되었다'라는 취지의 메일이 도착한 것.


Google Cloud의 이용 상황을 확인해보니 요금은 예산 상한 7달러는 커녕 무려 5000달러(520만 원)에 도달한 것을 발견. Google로부터 '신용카드 이용한도에 도달했기 때문에 결제가 완료되지 못하고 있다'라는 메일도 받았습니다. 이 와중에도 이용금액은 분 단위로 증가했고, 이메일을 확인한 시점에는 7만 2000달러까지 액수가 치솟았다고 합니다.


Google Cloud의 프로젝트는 하나의 신용카드에 연결되어 있었기 때문에, Milkie Way 프로젝트는 강제로 종료될 위기였다고 합니다. 팀 구성원과 밤새 무슨 일이 있었는지를 조사하였고, Chauhan 씨는 여러 곳의 법률사무소에 '7만 2000달러를 지불할 수 없다'고 상담메일을 보내었습니다. 이 시점에서 도산을 각오했었다고 Chauhan 씨는 말합니다.


Google Cloud의 약관을 살펴본 결과, 'Google Cloud Platform(GCP)는 Firebase 요금제를 자동으로 업그레이드한다'는 점을 발견했다고 Chauhan 씨는 말합니다. 또한 결제는 다음날에 반영되기 때문에 당일 분의 이용요금은 예산을 설정해도 제한할 수 없다는 것, Firebase 대시보드도 24분 지연으로 업데이트되기 때문에 실시간으로 이용 가능 여부를 확인하지 못한다는 점이 드러났습니다.

이용요금이 치솟은 원인은 Chauhan 씨 팀이 Cloud Run에 적용한 코드에 있었다고 합니다. Announce의 스크래핑 시스템은 Cloud Run의 코드를 여러 인스턴스에서 실행하는 구조였습니다. 그러나 코드가 부적절했기 때문에 인스턴스가 무수히 작동했고 각각의 인스턴스에서 무한히 코드가 실행되는 상황이었습니다.


이러한 인스턴스가 데이터베이스로 이용했던 Firebase에 초당 10억 번 요청을 보내었기 때문에 Google Cloud는 Firebase의 플랜을 자동으로 업그레이드. 이런 일련의 과정으로 고액의 요금을 부과받게 되었다고 Chauhan 씨는 설명합니다.


Chauhan 씨는 이번 고액 청구에 이르게 된 원인으로 '잘못된 코드를 적용', 'Google Run에서 시작하는 인스턴스 수를 기본인 1000 그대로 변경하지 않은 점', 'Firebase를 제대로 이해하지 않고 이용한 점' 등을 열거합니다.

Google에 상황을 설명하는 문서를 제출한 결과, 특별히 요금청구를 파기해준 덕분에 파산을 면할 수 있었다고 Chauhan 씨는 말합니다.

Posted by 말총머리
,