CI 비용 분석 — 6개월간 측정한 실제 숫자

$48k 아낀다고 생각하고 self-hosted 로 갔다. 실제로는 $11k 아꼈다. 나머지 $37k 가 어디로 갔는지의 분해.

백재민
백재민
CollabOps 창업자
CI 비용 분석 — 6개월간 측정한 실제 숫자

작년 가을, 한 고객사 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 분 초과 + 컴플라이언스 Xhosted (절감보다 운영 부담이 큼)
월 빌드 50,000 분 초과 + 컴플라이언스 Oself-hosted (통제로 정당화)
폐쇄망 / 데이터 거주성 강제self-hosted (선택지 없음)

진짜 비싼 행

위 표에서 진짜 비싼 행은 idle workerops 인건비큐 대기 시간 도 아니다. 잘못된 가정으로 시작한 결정의 sunk cost 다. 6개월 후에 "이거 답이 아니었네" 라고 깨달으면, 그 6개월 자체가 비용이다.

처음에 $48k 절감 으로 결정에 들어갔던 그 고객은, 6개월 후 $11k 절감 + 컴플라이언스 통제 라는 더 정확한 수익 함수를 알고 유지 결정을 했다. 결과적으로는 옳은 결정이었지만, 처음부터 정확한 숫자로 들어가는 게 더 적은 sunk cost 였다.

누가 이 글을 읽으면 좋은가

지금 GitHub Actions / CircleCI / GitLab SaaS CI 에서 self-hosted 로 옮길까 검토 중인 엔지니어링 리드. 위 8 항목 중 몇 개를 미리 계산했는지 가 결정의 정확도를 정한다. 컴플라이언스 요구 없는 상태에서 비용만으로 self-hosted 를 정당화하면 거의 항상 후회한다.

태그#cicd#cost-analysis#self-hosted#infrastructure#devops