CI 러너 호스팅
답변
셀프 호스팅 CI 러너는 제공업체의 공유 풀이 아닌 사용자가 제어하는 서버에서 빌드 파이프라인을 실행합니다. 월 14달러의 Incognito VPS VECTOR 플랜은 일반적으로 호스팅 러너보다 뛰어난 성능을 제공하면서 분당 요금과 대기열 대기를 완전히 제거합니다.
| 시나리오 | 최소 |
|---|---|
| 소규모 프로젝트 | 2 vCPU, 4GB RAM |
| 일반적인 모노레포 | 6 vCPU, 16GB RAM |
| 대규모 컴파일(Rust, C++) | 16 vCPU, 64GB RAM |
| Docker 레이어 캐시 | 140GB 이상 NVMe |
비용 계산이 일반적으로 결정적입니다
호스팅 CI 분은 직접 세어보기 전까지는 저렴해 보입니다. 월 수백 번의 빌드를 2코어 호스팅 러너로 실행하는 팀은 6코어 전용 VPS 비용보다 더 많은 비용을 정기적으로 지출하며, 호스팅 러너는 경합이 심한 저사양 머신이기 때문에 더 느린 빌드를 얻습니다.
또 다른 절약은 돈이 아닌 시간입니다. 셀프 호스팅 러너에는 대기열이 없습니다. 푸시하면 작업이 시작됩니다. 호스팅 풀이 붐비는 경우 러너를 몇 분 동안 기다리는 것이 일반적이며, 이 지연은 모든 개발자와 모든 푸시에 영향을 미칩니다.
실제 속도 향상은 캐싱에서 나옵니다
로컬 NVMe의 영구 저장은 원시 코어 수보다 CI 경제성에 더 큰 영향을 미칩니다. Docker 레이어, Cargo 레지스트리, node_modules, Gradle 캐시, ccache는 모두 셀프 호스팅 러너에서 실행 간 유지되지만, 호스팅 러너는 깨끗한 상태로 시작하여 모든 것을 다시 다운로드합니다.
대규모 Rust 또는 C++ 프로젝트의 경우 이는 벽시계 기준 빌드 시간을 5~10배 단축시키며, 전적으로 무료입니다.
격리 — 러너는 임의 코드를 실행하므로
셀프 호스팅 러너는 파이프라인에 있는 모든 것을 실행합니다. 공개 저장소의 경우 기여자가 풀 리퀘스트에 넣은 모든 것이 실행됩니다. 임시 격리 환경 없이는 공개 저장소에 셀프 호스팅 러너를 절대 연결하지 마십시오.
컨테이너 또는 단기 VM에서 임시 러너를 사용하고, 러너에 필요하지 않은 자격 증명을 부여하지 말고, 다른 것이 없는 서버에 배치하십시오. 프로젝트당 14달러의 머신은 파이프라인 침해가 나머지 인프라에 도달하는 것을 막는 저렴한 보험입니다.
자주 묻는 질문
01 CI 러너에는 어떤 플랜이 적합한가요?
일반적인 프로젝트에는 VECTOR(4 vCPU, 8GB)를, 모노레포 또는 대규모 컴파일에는 BASTION(6 vCPU, 16GB)을 권장합니다. 대부분의 파이프라인에서 코어 수보다 영구 NVMe 캐시가 더 중요합니다.
02 GitHub Actions에서 작동하나요?
예. 머신을 셀프 호스팅 러너로 등록하고 runs-on으로 대상 지정하면 됩니다. GitLab, Forgejo, Woodpecker, Drone도 모두 동일한 방식으로 작동합니다.
03 공개 저장소에 셀프 호스팅 러너를 사용해도 안전한가요?
임시 격리 환경 없이는 안전하지 않습니다. 풀 리퀘스트는 러너에서 임의 코드를 실행할 수 있습니다. 임시 컨테이너 또는 폐기 가능한 VM을 사용하고, 파이프라인에 필요하지 않은 자격 증명을 절대 부여하지 마십시오.
04 얼마나 더 빠른가요?
일반적으로 원시 컴퓨팅 성능은 2~4배, 캐시 집약적 파이프라인은 Docker 레이어와 종속성 캐시가 매번 재다운로드되지 않고 유지되므로 5~10배 더 빠릅니다.
관련