대상: 싱가포르·일본·한국·홍콩·미국 동·서부 등에서 원격 Mac CI를 돌리면서 주 Git, Docker 레지스트리, 아티팩트 스토어가 다른 대륙에 있는 팀. 야간 잡이 git fetch, 레이어 pull, 아티팩트 다운로드에서 멈춥니다.기대 효과: 토폴로지 결정은 아티팩트 근접 매트릭스에 두고, 토폴로지가 얼어 있는 동안 타임아웃, 저속 차단, 지수 백오프, 동시성 상한을 템플릿에 박습니다.구성: 통증 목록, 리전 불일치 표, Git/Docker 손잡이, 여섯 단계, KPI, 마무리 가이드입니다.
Apple Silicon은 컴파일 상한을 올리지만 파이프라인 시간은 대양 횡단 전송 반복에 자주 막힙니다. 노트북에선 즉각인 워크플로가 Git 홈 리전과 어긋난 러너에선 시간 단위 꼬리로 바뀝니다. 자주 반복되는 오해 여섯 가지입니다.
GIT_HTTP_LOW_SPEED_LIMIT / GIT_HTTP_LOW_SPEED_TIME이 없으면 무관한 단계에서 터져 트리아지가 엇나갑니다.git 프로세스·TLS·DNS를 압박합니다.셀프호스티드 러너 체크리스트를 겹치십시오. 러너는 잡을 머신에 매핑하고, 이 런북과 근접 매트릭스가 pull 성공률을 결정합니다. 세 문서를 한 마일스톤에서 검토하십시오.
아키텍처 패킷에 멀티리전 대여 가이드와 함께 넣으십시오. 왼쪽은 사실, 오른쪽은 이번 주 우선 조치입니다.
| 신호 | 전형적 증상 | 먼저 할 일(이번 주) | 하드웨어 각도 |
|---|---|---|---|
| 빌더는 APAC, 주 Git은 미동부 | clone/fetch P95 높음, 야간 실패 뭉침 | 얕은/단일 브랜치 클론, 저속 임계 상향, 병렬 git 상한, 읽기 미러 검토 | CPU 전에 네트워크. 링크 수정 후에도 꼬리면 M4→Pro 검토 |
| 프라이빗 레지스트리가 대륙 간 | 레이어 타임아웃, 간헐 5xx, pull 재시도 누적 | Pull-through 캐시, 매트릭스 축소, 지터 재시도 | 캐시 디스크를 1TB/2TB 알림에 연결 |
| 아티팩트가 다른 리전으로 부채질 | 업로드는 되나 검증이 느림, 중복 빌드 | 단일 빌드+청크 체크섬, 주 빌드 리전 문서화 | 피크 기간은 데이터 홈에 맞추고 최저가 리전만 쫓지 않음 |
| 기업 출구 프록시 | MITM 인증서, SNI·HTTP/2 특이점 | git과 containerd/docker용 허용 목록 분리, TLS 지문 비교 | SSH/VNC 접근 정책과 함께 검토 |
감사 친화적 기본값입니다. 플레이스홀더는 자사 mtr, 레지스트리 로그, 파이프라인 백분위로 바꾸십시오.
| 컴포넌트 | 핵심 손잡이 | 예/의미 | 실패 지문 |
|---|---|---|---|
| Git (HTTP/S) | GIT_HTTP_LOW_SPEED_LIMIT, GIT_HTTP_LOW_SPEED_TIME | 너무 느린 전송 중단 | 긴 침묵 뒤 급실패, 매트릭스 부하에서 악화 |
| Git 깊이 | --depth, --single-branch | CI HEAD용 객체 전송 축소 | 병렬 클론이 이그레스 포화 |
| Docker / BuildKit | 레지스트리 미러, max-concurrent-downloads, 빌드 병렬 | 캐시 티어로 동시 레이어 pull 상한 | 429, TLS 리셋, 레지스트리 폭풍 |
| 오케스트레이터 백오프 | 재시도, 기본 지연, 상한, 지터 | 동기화된 재시도 스탬피드 방지 | 분 단위로 맞춰진 대량 실패 |
# Git: avoid cross-region hangs (tune per link; set in CI env)
export GIT_HTTP_LOW_SPEED_LIMIT=1000
export GIT_HTTP_LOW_SPEED_TIME=120
git fetch --depth=1 origin "+refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH}"
# Docker: example daemon concurrency (platform-specific; align with ops)
# "max-concurrent-downloads": 3,
# "registry-mirrors": ["https://your-pull-through.example"]
# Orchestrator sketch: jittered backoff
# sleep = min(cap, base * 2**attempt) + random_jitter
참고: 플릿 롤아웃 전 단일 잡으로 검증하십시오. 동시성 변경을 일괄 적용하면 산발적 이슈가 확정 사고로 바뀝니다. 결과가 근접 매트릭스와 충돌하면 일일 요금보다 데이터 상주를 우선하십시오.
전제: 러너 라벨·시크릿은 러너 가이드대로 격리되어 있습니다. .git 자격 증명과 캐시 경로를 임시로 공유 중이면 먼저 수정하십시오.
git fetch --unshallow 허용 여부, 단일 브랜치 강제. CI에서 암시적 전체 히스토리 금지.대시보드 제목을 그대로 쓰십시오.
방향 맥락(벤치마크 아님): 2025–2026에는 차가운 대양 횡단 pull과 넓은 매트릭스가 꼬리 지연을 수십 분 넘기기 쉽습니다. 데이터 홈 정렬+백오프가 P95에서는 CPU 업그레이드를 이기는 경우가 많습니다.
개인 스크립트는 감사 추적이 약하고 리전이 바뀔 때마다 타임아웃·캐시가 무효화됩니다. 계약급 Apple Silicon CI에는 베어메탈 격리, 멀티리전 선택, 베이스+피크 기간 조합, Git/레지스트리 정책을 한 페이지에 담을 수 있어야 합니다.
데이터 홈과 맞지 않은 이그레스를 가진 파편화 공급자는 팀을 재시도 폭풍에 가둡니다. 재현 가능한 pull 경로, 리전 간 수평 확장, 프로덕션에 가까운 CI 시크릿 모델이 필요한 팀에게 전용 멀티리전 Mac 클라우드가 순환 임시 호스트보다 조용한 경우가 많습니다. MACCOME은 싱가포르·일본·한국·홍콩·미국 동·서부에서 Mac mini M4·M4 Pro 베어메탈 노드를 유연한 조건으로 제공합니다. 저장소·레지스트리와 같은 곳에 빌더를 두고 공개 요금·리전 페이지·멀티리전·러너 가이드로 확정하십시오.
파일럿: 데이터 홈과 동일 리전에 단기 빌더를 두고 이 글의 이주일 리뷰를 돌린 뒤 월/분기·2TB를 결정합니다. “저렴한 리전, 비싼 링크” 장기 청구를 피하십시오.
FAQ
아티팩트 근접 매트릭스와 어떻게 짝을 이루나요?
매트릭스는 체인을 어디에 둘지 고릅니다. 이 런북은 마이그레이션·동결 창에서 CI를 살립니다. 대여 요금과 멀티리전 가이드를 열고 두 문서를 같은 변경 티켓에 붙이십시오.
동시성을 먼저 줄일까, 리전을 옮길까?
대시보드에 429·TLS 리셋·동기 재시도가 보이면 동시성을 내리고 지터를 더합니다. P95가 높은 채 데이터를 옮길 수 있으면 리전 이동을 계획합니다. 자세한 내용은 고객 센터를 참고하십시오.
CocoaPods/SPM 글과의 경계는?
그 글은 리졸버 소스와 trunk/CDN 경로를 고정합니다. 이 글은 Git 리모트와 컨테이너 레이어를 고정합니다. 로그에 pod install과 git fetch 꼬리가 함께 나오면 지표를 나누고 한 체인만 최적화하지 마십시오.