GitHub Actions 비용이 새고 있고, 대부분의 팀은 너무 늦게까지 눈치채지 못합니다
Source: Dev.to
무엇을 하는가
CICosts는 GitHub App으로 설치되며 워크플로우 실행이 완료될 때마다 웹훅 이벤트를 받습니다. 실행된 러너 분(minute)을 해당 러너 유형(Linux, Windows, macOS, self‑hosted)의 GitHub 공개 가격과 곱해 결과를 저장합니다.
그 후 대시보드에서 비용을 확인할 수 있습니다:
- 워크플로우별
- 저장소별
- 브랜치별
- 시간 경과에 따른
워크플로우가 임계값을 초과하면 알림을 설정하고, 추세를 확인하며, PR 병합 후 회귀를 파악하고, 환경별 비용을 비교할 수 있습니다.
가격 계산 (작성 시점 기준)
- Linux 러너: $0.008/분
- Windows 러너: $0.016/분
- macOS 러너: $0.08/분
예시: 12분짜리 Linux 워크플로우는 $0.096이 듭니다. 이를 하루에 500번, 30개의 저장소에서 실행하면 비용이 빠르게 누적됩니다.
일반적인 낭비 패턴
매트릭스 폭발
3개의 OS 버전과 4개의 런타임 버전을 조합해 테스트하는 워크플로우는 푸시당 12번 실행됩니다. 매트릭스를 점진적으로 추가했다면 누적 비용이 놀라울 수 있습니다.
macOS 러너를 macOS가 아닌 작업에 사용
macOS 러너는 Linux보다 대략 10배 비쌉니다. iOS 빌드에는 필요하지만, 워크플로우 템플릿을 조정 없이 복사하면서 백엔드 파이프라인에 포함되는 경우가 있습니다.
캐시 없이 테스트 병렬 실행
테스트를 병렬로 실행하는 것은 좋지만, 캐시 키가 잘못돼 각 병렬 작업이 큰 의존성(예: 200 MB)을 매번 다시 다운로드하면 비용이 급증합니다.
불필요한 야간 빌드
오래 전에 수정된 버그를 잡기 위해 만든 스케줄된 야간 워크플로우가 정리되지 않아 계속 실행될 수 있습니다.
이러한 패턴은 가시성을 확보하면 쉽게 해결할 수 있습니다.
왜 이제 오픈소스이자 무료인가
원래 CICosts는 유료 SaaS로 만들었지만, 아직 평판이 확립되지 않은 제품에 가격을 너무 높게 잡아두면 채택이 어렵습니다. 엔지니어에게 $29/월이라는 비용으로 GitHub App을 추가하고 CI 데이터를 신뢰하도록 설득하는 것이 힘든 일이었습니다.
솔직히 말하면: 제품은 좋았지만, 아무도 몰랐습니다—배포 문제였지 제품 문제가 아니었습니다.
이제 모델은 간단합니다:
- GitHub에 MIT‑라이선스 소스 코드 공개.
- app.cicosts.dev 에서 호스팅되는 버전은 사용량 제한 없이 무료.
- SLA 또는 프라이빗 배포가 필요한 조직을 위한 엔터프라이즈 티어 제공.
시작하기
GitHub에서 앱을 설치합니다:
https://github.com/phonotechnologies/cicosts-app
https://github.com/phonotechnologies/cicosts-api또는 app.cicosts.dev 의 호스팅 버전을 직접 사용합니다. 조직에 GitHub App을 추가하면 다음 워크플로우 실행부터 몇 분 안에 비용 데이터가 흐르기 시작합니다.
설정은 약 5분 정도 걸리며, 저장소에 코드를 변경할 필요가 없습니다. 설치가 완료되면 GitHub App이 자동으로 웹훅 이벤트를 받습니다.
내가 다르게 할 점
처음부터 시작한다면 첫날부터 오픈소스로 만들고 GitHub App 설치 경험을 완벽히 다듬는 데 집중했을 것입니다. 이 도구에서 가장 어려운 부분은 비용 계산이 아니라, 사람들에게 충분히 신뢰를 주어 설치하게 만드는 일입니다.
오픈소스가 그걸 쉽게 합니다: 누구든 코드를 읽고, 어떤 데이터가 저장되는지 정확히 확인하며, 숨겨진 것이 없음을 검증할 수 있습니다. 코드는 GitHub의 phonotechnologies 조직 아래에 있습니다. PR은 언제든 환영합니다—특히 러너 가격 업데이트나 새로운 알림 유형에 대한 PR이요. 문제가 생기면 이슈를 열어 주세요.