CI 비용 분석 — 6개월간 측정한 실제 숫자
$48k 아낀다고 생각하고 self-hosted 로 갔다. 실제로는 $11k 아꼈다. 나머지 $37k 가 어디로 갔는지의 분해.
작년 가을, 한 고객사 CTO 가 GitHub Actions 청구서를 들고 우리에게 왔다.
"월 $4,000. 자체 호스팅으로 가면 $200짜리 EC2 4대로 끝나잖아. 연간 $48,000 아끼자."
6개월 후 우리가 측정한 실제 절감 은 $11,000 였다. 나머지 $37,000 이 어디로 갔는지 — 그 분해가 이 글이다.
처음 표 (그들이 들고 온 것)
GitHub Actions: $4,000 / 월 → $48,000 / 연
Self-hosted (ec2 c5.2xlarge × 4):
EC2 비용: $560 / 월
네트워크: $50 / 월
스토리지: $40 / 월
total: $650 / 월 → $7,800 / 연
연간 절감: $40,200 (84%)깔끔하다. 그래서 이주를 시작했다.
6개월 후 표 (실제 측정)
Self-hosted 직접 비용: $7,800 / 연 (예상대로)
빠진 항목:
+ idle worker 시간 (평균 ~38% utilization):
*예상* 비용 효율은 100% 가까이 가정함
EC2 4대 → 빌드 부하의 5배 capacity 필요했음
실제 EC2 비용: $9,800 / 연
+ ops 인건비 (월 평균 12 시간):
ops engineer rate × 12h × 12mo $14,400 / 연
+ 자체 secret store (Vault):
서버 + 라이선스 + 백업 $2,800 / 연
+ observability 스택:
Prometheus + Grafana 자체 호스팅 $1,200 / 연
+ 보안 패치 / OS 업그레이드:
평균 분기 1회 × 4시간 $1,920 / 연
+ 빌드 워커 OS 라이선스:
Windows 빌드 워커 1 대 $600 / 연
+ 불변 이미지 빌드 파이프라인 운영:
Packer + S3 + 회전 $400 / 연
실제 self-hosted 총 비용: $31,120 / 연 ⓐ
GitHub Actions 시나리오 (가정):
$4,000 × 12 $48,000 / 연 ⓑ
실제 절감 (ⓑ - ⓐ): $16,880 / 연이게 깨끗한 계산 이다. 그런데 우리는 $11,000 이라고 했다. 차액 $5,880 은?
빠진 마지막 항목 — 빌드 시간 손실
self-hosted 첫 3개월 동안 빌드 큐 대기 시간이 평균 17분 늘었다. 워커 4대가 부족했고, 동시 푸시가 몰리면 줄을 섰다. 엔지니어 22명이 평균 하루 2회 push 한다고 가정하면:
22 명 × 2 push/일 × 200 일 × 17 분 손실 = 124,667 분
= 2,078 시간
= ~$5,900 (engineer rate)이게 간접 비용 이다. 청구서에 안 찍히지만 실제로는 가장 비싼 항목.
3개월차에 워커 2대를 추가했고, 큐 대기가 5분으로 줄었다. 그 시점부터 진짜 절감이 명확 해졌다. 그래서 6개월 평균 절감 = $11,000.
그래서 self-hosted 가 답이 아닌가
답이다. 다만 $48,000 절감 이 아니라 $11,000 절감 이다. 거기에 통제 (compliance·audit·data residency) 가 따라온다.
그리고 하나 짚어야 한다. 위 8개 항목에서 직접 비용을 뺀 나머지는 전부 DIY 운영의 비용이다. 워커 스케일링, 시크릿 스토어, 관측 스택, 패치를 사람이 직접 챙겨서 생긴 값이라는 뜻이다. 이 고객은 러너 인프라를 손으로 조립했다. 관리형 self-hosted 플랫폼 위에서는 이 항목들이 플랫폼으로 넘어가고, 계산이 달라진다. 그 비교는 12개월 데이터로 따로 정리했다.
다섯 종류의 워크로드별 결정 매트릭스:
| 워크로드 | 권장 |
|---|---|
| 월 빌드 5,000 분 미만 | hosted (운영 비용이 절감보다 큼) |
| 월 빌드 5,000~50,000 분 | hosted, 단 spot worker 같은 hybrid 옵션 검토 |
| 월 빌드 50,000 분 초과 + 컴플라이언스 X | DIY 는 비권장, 관리형 self-hosted 는 계산 성립 (운영 부담이 플랫폼으로 이동) |
| 월 빌드 50,000 분 초과 + 컴플라이언스 O | self-hosted (통제로 정당화) |
| 폐쇄망 / 데이터 거주성 강제 | self-hosted (선택지 없음) |
진짜 비싼 행
위 표에서 진짜 비싼 행은 idle worker 도 ops 인건비 도 큐 대기 시간 도 아니다. 잘못된 가정으로 시작한 결정의 sunk cost 다. 6개월 후에 "이거 답이 아니었네" 라고 깨달으면, 그 6개월 자체가 비용이다.
처음에 $48k 절감 으로 결정에 들어갔던 그 고객은, 6개월 후 $11k 절감 + 컴플라이언스 통제 라는 더 정확한 수익 함수를 알고 유지 결정을 했다. 결과적으로는 옳은 결정이었지만, 처음부터 정확한 숫자로 들어가는 게 더 적은 sunk cost 였다.
GitHub Actions / CircleCI / GitLab SaaS CI 에서 self-hosted 로 옮길지 검토 중인 엔지니어링 리드라면, 위 8개 비용 항목 중 몇 개를 미리 계산해 봤는지 가 그 결정의 정확도를 정한다. 그리고 그 항목 대부분이 운영 인건비라는 걸 확인했다면, 다음 질문은 이거다. 그 운영을 사람이 들 것인가, 플랫폼이 들 것인가. 사람이 들면 절감은 $11k 에서 멈추고, 플랫폼이 들면 계산이 달라진다.
비슷한 글
에이전트 시대의 Eclipse 플러그인 — 작업 컨텍스트는 20년 전에도 문제였다
Mylyn 이 2000년대에 풀려던 문제와 지금 에이전트 컨텍스트 문제는 같습니다. 달라진 건 그 컨텍스트를 읽는 쪽에 사람만 있는 게 아니라는 점입니다.
김영상
에이전트 시대의 VS Code 확장 — 개발자는 에디터에서 무엇을 보는가
코드 작성 비용이 무너진 뒤 개발자의 시간은 판단과 승인으로 옮겨갔습니다. 그 일들이 왜 에디터 밖에 있으면 안 되는지, VS Code 확장을 만들며 내린 선택들.
이승백
이클립스는 그대로 쓰셔도 됩니다 — IDE 연동과 ITSM 연동에 대한 답
개발툴로 이클립스를 쓰는데 어떻게 연동되냐는 질문과, ITSM 과 연동되냐는 질문은 거의 항상 같이 나온다. 표준 Git 프로토콜이라는 답의 의미, 그리고 ITSM 연동 요구의 진짜 본질이 증적 체인이라는 이야기.
백재민