2026 GitHub 호스트 macOS Runner vs 전용 Mac 클라우드 빌드 풀: 병렬·분 과금·캐시 전략
플랫폼 리드는 GitHub macOS 분 과금으로 충분한지, 전용 Mac 클라우드에 self-hosted 러너를 두어야 하는지 자주 묻습니다. 이 글은 Git 측 CI 처리량과 큐를 다루는 선택이며 Xcode Cloud를 대체하지 않음을 분명히 하고, 청구·병렬 한도·DerivedData·디스크 여유를 함께 보는 틀, 비교표, 5단계, 검토용 지표, FAQ를 제공합니다.
핵심
1. 요약: 각 접근이 최적화하는 것
GitHub 호스트 macOS 러너는 운영 부담 없는 분 과금으로 PR 검증과 변동이 큰 팀에 적합합니다. 전용 Mac 클라우드 풀은 디스크·툴체인·이그레스 정책을 고정하고 self-hosted로 라벨별 병렬을 제한합니다. 둘 다 Git CI 문제이며 App Store Connect 연동은 Xcode Cloud 영역입니다. max-parallel을 올린다고 항상 빨라지지 않으며, 호스트는 조직 큐와 분 단가에, 셀프호스트는 DerivedData 경합·키체인 배타·디스크 급증에 막힙니다. 분 단가, p95에서 큐와 컴파일 비중, 캐시, 여유 공간을 함께 봐야 합니다.
Linux VPS 습관 팀은 동일 사용자 키체인에 동시 Archive, Spotlight 간섭, 노트북과 서버의 Xcode 미세 차이로 재현성이 흔들릴 수 있음을 기억하세요. 호스트는 매 잡마다 새 이미지를 주지만 셀프호스트는 재현성과 운영 부담을 동시에 드러냅니다. 비용에는 엔지니어링 시간도 포함하고, 릴리스 주에 큐 대기로 분이 불어나는 경우와 고정에 가까운 Mac 클라우드로 p95를 안정화하는 경우를 비교하세요.
2. 고통 지점: 청구·큐·캐시·경합
- 청구: 호스트는 커밋·피크에 연동되어 여러 저장소가 겹치면 급등합니다. Mac 클라우드는 시간·월+대역폭 중심으로 장시간 CPU 점유에 유리하나 유휴 비용을 감안해야 합니다.
- 큐와 병렬: 호스트는 스케줄러·조직 한도 영향을 받습니다. 셀프호스트는 CPU/RAM/IO 한계에서 병렬
xcodebuild과다 시 링크·Swift 피크에서 흔들립니다. - DerivedData: 호스트의 임시 FS와 영구 볼륨은 캐시 의미가 다릅니다. 경로를 나누고 정리 전략이 없으면 적중률 또는 디스크 극단으로 갑니다.
- 보안·공존: 기업 PKCS·고정 이그레스·상주 데몬을 함께 두려면 전용 풀이 현실적입니다.
다섯 번째는 관측 가능성 대등입니다. GitHub는 큐를 대시보드화하지만 셀프호스트는 디스크·CPU·launchd를 직접 모니터링하지 않으면 “분이 늘었다”와 “빌드가 랜덤하게 빨갛다”의 어휘가 갈라집니다. ci-pr/ci-release 같은 라벨을 표준화하세요.
3. 의사결정 표
| 차원 | GitHub 호스트 macOS | 전용 Mac 클라우드 풀 |
|---|---|---|
| 과금 | 분 과금, 병렬에 민감 | 임대+트래픽, 무거운 컴파일에 완만 |
| 병렬 제어 | 조직 할당·공유 스케줄러 | 자체 라벨·executor |
| 디스크 | 캐시 API+일시 FS | 영구 경로·자체 정리 |
| 툴체인 | 플랫폼 이미지 속도 | 여러 Xcode 공존 |
| 서명 | Secrets 패턴 준수 | match/API 키를 기업 PKI에 맞추기 쉬움 |
self-hosted 라벨로. 브랜치 규칙과 concurrency를 README에 적어 DerivedData 충돌을 막습니다.4. 측정에서 확장까지 5단계
- p50/p95·큐 대기·실효 $/분 측정. 큐가 지배하면 먼저 병렬 창을 조정.
- SSH로
xcodebuild -version, 시스템 볼륨 40GB 이상 여유, 프록시/DNS, Git RTT 확인. - 라벨별 DerivedData 경로 분리. 야간 전체와 PR에 다른 보존 정책.
concurrency로 릴리스 재진입 방지, 메모리 피크 관찰 후 병렬 상향.- SLA 위반·디스크 경고·제2 리전 필요 시 노드 수평 추가. 병렬만 올리지 않기.
5. 검토용 하드 지표
- 디스크: 며칠 만에 DerivedData가 수십 GB, 여유 10GB 미만이면 링크 불안정.
- 메모리: Apple Silicon 단일 Archive 12~18GB 피크 사례로 동시 실행 상한 추정.
- RTT:
git fetch·바이너리가 멀면 선형 지연. 큐와 컴파일 분리. - 호스트 분: 스파이크를 큐 팽창과 컴파일 지연으로 분해.
- 실패 태그: 서명·의존성·OOM·업로드를 분리해 GitHub 설정인지 Mac 디스크인지 즉시 판단.
- 캐시 ROI: 동일 DerivedData에서의 속도 향상으로 SSD 정당화.
- 조직 병렬 예산: 여러 저장소 피크 주가 겹치면 큐가 곱해짐.
- 아티팩트: 거대
.xcarchive가 분·대역폭을 압박, 러너 정리 잊지 말 것.
재무 리뷰에서는 GitHub 사용 CSV와 셀프호스트 가동 보고를 나란히 두고, 호스트 분은 커밋 속도, Mac 클라우드 임대는 기저 부하와 상관해야 합니다. 커밋이 평평한데 분만 늘면 캐시 미스·미러 지연·큐 경합을 의심하세요.
6. 병렬보다 노드를 추가할 때
분 과금만 믿으면 고정 이그레스·무인 서명에서 막히고, 단일 셀프호스트는 디스크·경합으로 빨간 빌드를 반복합니다. 현실적인 패턴은 가벼운 검증은 호스트에, 무거운 컴파일·릴리스는 전용 Mac 클라우드로 보내고, SLA 이탈이나 제2 리전이 필요할 때 수평 확장하는 것입니다. 사무실 물리 Mac을 상시 감시하는 것보다 전용 Mac 클라우드를 몇 시간 내에 올려 SSH를 Linux VPS처럼 맞추고, 호스트 분을 쌓는 것보다 예측 가능한 연간 예산에 가깝습니다. Xcode Cloud와 병행해도 GitHub 호스트와 Mac 클라우드 self-hosted는 Git CI 연산 이야기이니 브랜치 책임을 명확히 하세요. 노드 개통과 파이프라인 연결을 API에 가깝게 하려면 VPSMAC의 90초 API·CI/CD 연동 글을 참고하세요.