- macOS용 화면 녹화 앱 Screen Studio의 자동 업데이트 버그로 인해, 250MB 파일이 5분마다 반복 다운로드되는 문제가 발생함
- 결과적으로 한 달간 2PB(2,000,000GB)의 트래픽이 Google Cloud에서 발생하며 약 $8,000의 요금 폭탄으로 이어짐
- 원인은 단순한 코드 누락으로, 업데이트 다운로드 후 반복 요청을 멈추는 로직을 빠뜨린 것임
- 일부 사용자에겐 인터넷 서비스 해지 등 실질적 피해까지 발생했고, 개발팀은 책임을 통감함
-
클라우드 비용 경고 설정, 비용 유발 코드 검토, 업데이트 서버 제어 장치 마련 등의 교훈을 강조함
사고 개요
- Screen Studio는 macOS용 데스크탑 화면 녹화 앱으로, 자동 업데이트 기능이 있음
- 업데이트 파일 용량은 약 250MB이며, 앱은 5분마다 서버를 확인함
- 버그로 인해 업데이트가 감지된 후에도 5분 간격 요청이 중단되지 않고 계속 다운로드됨
비극적 리팩터의 시작
- 기존에는 업데이트 팝업이 녹화 중 방해가 되어 UX 문제가 있었음
- 이를 개선하기 위한 리팩터 중, 업데이트 후 타이머를 정지하는 로직을 제거해버림
- 그 결과, 업데이트 파일이 반복 다운로드되는 로직이 앱 내에 내장된 상태가 됨
무서운 컨텍스트: 백그라운드 실행 상태
- 사용자 중 상당수가 앱을 수 주간 백그라운드 상태로 실행한 채로 사용 중이었음
- 이 상태에서 수천 개의 인스턴스가 5분마다 250MB를 자동 다운로드함
수치로 보는 재앙
- 5분마다 다운로드 = 하루 288회
- 사용자 1인당 일일 다운로드 트래픽 = 72GB
- 약 30일간 지속, 1천 명의 사용자 가정 시:
-
250MB × 288 × 30 × 1,000 = 약 2PB 트래픽
- Google Cloud에서 발생한 예상 요금: 약 $8,000
연쇄 실수들
-
Google Cloud 비용 알림이 설정되지 않음
- 기존 월 요금 $300 수준으로 안일하게 생각
- 최종적으로는 신용카드 한도 초과로 거래가 차단되며 문제 인지
사용자 피해
- 한 사용자는 이 트래픽으로 인해 ISP(인터넷 제공업체)에서 서비스 계약 해지 통보를 받음
- 해당 지역에 대체 공급자 없음 → 심각한 생활 불편
- 팀은 책임 인정 및 비용 보상 제안, 다행히 상황은 원만히 해결됨
- 하지만 사용자에게 해를 끼친 경험은 개발자에게 깊은 반성을 남김
교훈 요약
-
클라우드 비용 알림은 필수
-
자동 업데이트 로직은 매우 신중하게 작성할 것
-
비용 유발 가능성이 있는 모든 코드는 특별히 검토할 것
-
서버 제어 신호(예: 강제 업데이트 플래그) 를 설계에 포함할 것
-
클라우드 사용 상태를 정기적으로 점검할 것