2026 렌탈 Mac mini M4 16GB GitHub Actions 셀프 호스트 러너: 스코프 매트릭스, 워크스페이스·디스크, 2병렬 잡, 시크릿·SSH 위생, 12단계 스모크
GitHub Actions 셀프 호스트 러너는 「무료 macOS 분」이 아니라 재무·디스크·메모리 계약입니다. 팀은 16GB 통합 메모리 Mac mini M4 렌탈 호스트를 예측 가능한 Xcode/Fastlane/SwiftPM, 따뜻한 DerivedData, 아시아태평양 리뷰어 근처 egress가 필요할 때 선택합니다. 본문은 16GB에 맞는 워크플로 스코프, 워크스페이스·Actions 캐시의 APFS 소비, 실무 상한 2병렬 잡, 등록 토큰의 git 제외, 6리전 대기, 12단계 스모크를 정리합니다.
공식 출발점: Slack에 설치 스크립트를 붙이기 전 GitHub 셀프 호스트 러너 문서를 읽으세요. 하드웨어는 Apple Mac mini 사양(M4)에 맞춥니다.
고지: 본문 Mac 렌탈은 KvmZone 서비스입니다. 요금은 공개 요율, 하드웨어는 Apple Mac mini 공식 사양입니다.
러너 스코프 매트릭스: 렌탈 M4 16GB에 올릴 것
셀프 호스트 러너는 macOS 전용 단계(서명, 공증, 시뮬레이터 스모크)나 Xcode 마이너 고정에 유리합니다. 16GB를 64GB Linux 팜처럼 쓰며 측정 없이 통합 6개를 큐에 넣으면 실패합니다.
| 스코프 | 전형 단계 | 16GB | 메모 |
|---|---|---|---|
| 라이트 CI | lint·단위 테스트·전체 Archive 없는 swift build | 권장 | 함께 보기 Git shallow/sparse 매트릭스 |
| 릴리스 레인 | Archive, Fastlane, TestFlight upload | 동시 1잡 | 참고 Fastlane TestFlight 매트릭스 |
| 에이전트 hook | CI 옆 webhook 수신 | 호스트 분리 | 함께 읽기 OpenClaw webhook CI 연동 |
| 대형 ML / Docker | GPU 가정의 멀티 컨테이너 | 부적합 | Linux 호스트 러너 또는 대형 장비 |
라벨·그룹·Org 경계
- 여러 리포가 같은 Xcode를 쓰면 Organization에 등록하세요. 실험만 리포 레벨.
- 재무가 읽을 라벨:
macos-m4-16gb-seoul,release-lane,ci-light(fast금지). - 허용 리포를 내부 allow-list에 기록하세요. 셀프 호스트는 허용 리포의 workflow를 신뢰합니다.
Actions 워크스페이스 디스크 매트릭스
GitHub Actions는 _work/에 checkout을 펼치고 도구별로 캐시합니다. 렌탈 Mac mini에서 APFS 여유가 숨은 큐 킬러—DerivedData와 actions/cache가 256GB SKU를 공유하면 swap이 증폭됩니다.
| 신호 | 황색 | 조치 |
|---|---|---|
| 잡 전 APFS 여유 | <18GB | 신규 잡 중지·캐시 정리·1TB 검토 |
| 멀티 리포 checkout | >40GB working tree | shallow+sparse: Git 디스크 매트릭스 |
| DerivedData+Archive | >80GB steady | 주간 정리 또는 2TB |
| Actions 캐시 | >30GB per repo | 캐시 키 범위·릴리스 호스트 분리 |
디스크 진실: SSD 확장은 RAM을 늘리지 않지만, 2잡이 잠깐 겹칠 때 swap 정체를 줄입니다—「queued」 미스터리 1주보다 쌉니다.
16GB 통합 메모리 병렬 잡
Apple Silicon은 CPU/GPU/시스템이 16GB를 공유합니다. 16GB 호스트에서는 혼합 레인 macOS 잡 2개 상한, 풀 Archive·시뮬레이터 통합은 1개.
| 병렬 정책 | 용도 | 메모리 |
|---|---|---|
| max-parallel: 1 | 릴리스 Archive·Fastlane 야간 | 30분 잡 후 swap 차 <15% |
| max-parallel: 2 | 별도 리포 lint+단위, 경량 Node | swap 기준 초과 시 중단: 통합 메모리 플레이북 |
| Second rented host | 릴리스+webhook 24/7 | sysctl 미세조정보다 저렴 |
플레이크 조사 시 ACTIONS_RUNNER_HOOK_JOB_STARTED로 memory_pressure 로그—재무는 그래프를 선호합니다.
시크릿·SSH·러너 위생
셀프 호스트는 workflow YAML의 임의 코드를 실행합니다. 보안은 호스트 위생+시크릿 경로이며 「비공개=안전」이 아닙니다.
- 전용 macOS 사용자로 러너를 설치하고 SSH로 운영: SSH vs VNC 보안 워크플로.
- PAT·클라우드 키는 Organization secrets에. 로그에
RUNNER_TOKEN금지. - 재프로비저닝 후 등록 토큰 로테이션.
.runner유출 시 침해로 간주. - 러너는
launchdKeepAlive. 재시작은 Runbook에.
CI 러너 6리전 배치
KvmZone 노드: 홍콩, 일본(도쿄), 한국(서울), 싱가포르, 미동, 미서. SaaS CDN 표기가 아니라 PR 머지·로그를 보는 사람에 가깝게 고르세요. 서울 노드는 KR 리뷰어·자동화에 맞습니다.
| 프로필 | 리전 | 함께 읽기 |
|---|---|---|
| CN 업무시간 모바일 CI | 홍콩 또는 싱가포르 | Git shallow 매트릭스 |
| JP 컴플라이언스+리뷰어 TZ | 도쿄 | Fastlane POP 매트릭스 |
| 서울 리뷰어 옆 KR 자동화 | 한국(서울) | 병렬 렌탈 매트릭스 |
| 미서부 저녁 배치 | 미서 | OpenClaw webhook 레인 |
| EU 인계 | 미동 | 제2호스트 분리 |
러너 라벨 고정 전 요금 페이지에서 리전 Compare—egress·TZ가 CPU 표보다 중요합니다.
12단계 러너 스모크
설치 후 또는 Xcode 업그레이드 후 실행. 재무 주간 ID와 스크린샷을 저장하세요.
| 단계 | 게이트 | 통과 |
|---|---|---|
| 1 | SSH | 러너 사용자 비대화 셸 |
| 2 | GitHub 도달 | curl -I https://github.com 프록시 깜짝 없음 |
| 3 | 러너 서비스 | launchctl 리스너 동작 |
| 4 | Org 등록 | GitHub UI에서 라벨 확인 |
| 5 | Xcode select | xcode-select -p Runbook 마이너 일치 |
| 6 | 디스크 여유 | ≥18GB 시스템 APFS 여유 |
| 7 | 워크플로 드라이런 | 테스트 분기 lint-only 녹색 |
| 8 | 캐시 경로 | 잡 후 캐시 상한 내 |
| 9 | 메모리 | 20분 잡 후 swap 차 <15% |
| 10 | 시크릿 | Actions 로그에 토큰 없음 |
| 11 | 리전 | Runbook+라벨에 노드 기록 |
| 12 | 재무 | 주간 ID+요금 스크린샷 |
9–10 실패 시 GitHub 큐 탓하기 전 메모리 압박을 분류하세요.
FAQ
관련 글
- Xcode 27 네이티브 coding agents — Cursor 구독 비교
- Git shallow/sparse 멀티리포 디스크 매트릭스 — checkout 규율
- Fastlane TestFlight SSH signing POP matrix — 릴리스 레인
- 통합 메모리 swap 압박 플레이북 — swap 분류
- 렌탈 기간×병렬 라이트 잡 디스크 매트릭스 — 제2호스트 조건
- Remote Mac SSH vs VNC 보안 워크플로 — 접근 위생
- OpenClaw webhooks CI remote Mac integration — CI 옆 에이전트