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) 가 따라온다. 이 통제가 없으면 self-hosted 의 23% 절감만으로는 보통 정당화가 안 된다.
다섯 종류의 워크로드별 결정 매트릭스:
| 워크로드 | 권장 |
|---|---|
| 월 빌드 5,000 분 미만 | hosted (운영 비용이 절감보다 큼) |
| 월 빌드 5,000~50,000 분 | hosted, 단 spot worker 같은 hybrid 옵션 검토 |
| 월 빌드 50,000 분 초과 + 컴플라이언스 X | 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 항목 중 몇 개를 미리 계산했는지 가 결정의 정확도를 정한다. 컴플라이언스 요구 없는 상태에서 비용만으로 self-hosted 를 정당화하면 거의 항상 후회한다.
비슷한 글
에이전틱 DevOps 12개월 후 — 첫 가설 중 무엇이 *맞았고* 무엇이 *틀렸나*
12개월 전 다음 10년의 DevOps는 에이전틱이다 의 가설들. 12개월의 데이터로 어느 가설이 맞고 어느 게 틀렸는지의 정직한 평가.
백재민
3 pillars 그 후 — 4 추가 신호의 *6개월 후* 운영 노트
3 pillars 가 더 이상 충분하지 않은 이유 발행 후 6개월. 4 추가 신호 (events / user journeys / deploy correlation / similarity) 가 운영에서 어떻게 작동했는지의 후속.
백재민
GitHub Actions vs 자체 호스팅 — *진짜 비용* 비교 (12개월 데이터)
GitHub Actions 가 *비싸 보임* 은 표면. 12개월 자체 호스팅 vs SaaS 비교 — 단순 *분당 비용* 이 아니라 *총 운영 비용* 으로.
백재민