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 에서 멈추고, 플랫폼이 들면 계산이 달라진다.
비슷한 글
기획자가 코드를 배포하면, 장애는 누가 책임질까
AI로 제품 담당자가 직접 코드를 만들고 여러 에이전트가 동시에 작업하는 조직에서, 운영에 나가는 변경을 누가 무엇으로 확인해야 하는지. NIST SSDF, SLSA provenance, Google SRE 포스트모템 문화를 근거로 작성자와 분리된 검증·승인·복구의 역할 설계를 정리했다.
백재민
에이전트 시대의 Eclipse 플러그인 — 작업 컨텍스트는 20년 전에도 문제였다
Mylyn 이 2000년대에 풀려던 문제와 지금 에이전트 컨텍스트 문제는 같습니다. 달라진 건 그 컨텍스트를 읽는 쪽에 사람만 있는 게 아니라는 점입니다.
김영상
에이전트 시대의 VS Code 확장 — 개발자는 에디터에서 무엇을 보는가
코드 작성 비용이 무너진 뒤 개발자의 시간은 판단과 승인으로 옮겨갔습니다. 그 일들이 왜 에디터 밖에 있으면 안 되는지, VS Code 확장을 만들며 내린 선택들.
이승백