2026SFTPCI동시성

2026 원격 Mac SFTP를 팀과 CI가 공유할 때: 동시 세션, 병렬 Job, keepalive 의사결정표

여러 파이프라인이 동일한 원격 Mac SFTP 진입점을 쓰면 실패는 종종 인증이 아니라 연결 리셋, 세션 고갈, 매트릭스 Job이 SSH 채널을 포화시키는 형태로 나타납니다. 직렬·제한 병렬·큐·계정 분리 네 모델을 비교하고 MaxSessions, MaxStartups, ClientAlive·ServerAlive 기준을 제시합니다. 스테이징+심링크 원자 릴리스, SFTP·rsync 비교, Mac 클라이언트·CI 가이드와 함께 설계하세요.

원격 MacSFTPGitHub Actionskeepalive
여러 팀이 원격 Mac에 SFTP와 CI로 업로드하는 개념도

세 가지 pain: 붙는 것과 확장은 다릅니다

1) 매트릭스가 커지면 미스터리 끊김. 각 단계가 SFTP·rsync over SSH를 열면 MaxSessions·MaxStartups가 빡빡할 때 후속 Job이 거절되거나 전송 중 broken pipe가 납니다.

2) 대화형 SFTP와 자동화가 같은 예산을 씁니다. 대용량 드래그 업로드와 증분 동기가 같은 SSH 하위 시스템에서 경쟁하지만 연결·대역 예산표는 흔히 없습니다.

3) 중간 장비가 유휴 TCP를 끊습니다. 분 단위 NAT·방화벽 타임아웃이 있고, 디스크 정체 시 앱은 살아 있는 것처럼 보여도 경로는 이미 끊겼을 수 있습니다.

설정 전에 업로드 아키텍처를 고릅니다

직렬은 초소형 팀, 제한 병렬은 활성 SSH를 소수로 캡하고 큐로 흡수하는 일반적 기본값, 는 다수 저장소가 한 Mac을 쓸 때, 계정 분리는 외주·사업부 격리에 맞습니다. 권한·감사 최소 권한과도 맞물립니다. 스테이징 릴리스를 쓰면 짧은 컷오버 창과 긴 동기 창의 연결 예산을 분리하세요.

iOS·macOS 빌드 산출물처럼 대용량 아카이브를 자주 올리는 팀은 RTT와 디스크 쓰기 속도를 함께 적어 두고, 동시 업로드 수가 디스크 대역을 압박하지 않는지 주기적으로 점검해야 합니다. 그렇지 않으면 keepalive를 맞춰도 전송 큐에서 대기 시간만 길어집니다.

의사결정표와 keepalive 요약

아래 표는 리뷰 미팅용 빠른 합의용이며, 실제 한도는 링크 RTT·SSD/HDD·CPU 여유에 맞춰 재측정하십시오.

모델적합리스크최소 통제
직렬아주 작은 팀대기 시간문서화된 순서
제한 병렬소수 파이프라인sshd+CI 동시 조정한도·max-parallel·백오프
다저장소 단일 입구스케줄러 SPOFUI·재실행
계정 분리파트너 공유키 운영chroot·감사·로테이션

keepalive·세션 기준 요약:

위치항목권장 시작값메모
클라이언트ServerAliveInterval약 30초방화벽 유휴 전 패킷
서버ClientAliveInterval약 60초정책에 맞게 조정
sshdMaxSessions10 전후대화형·에이전트 여유

다섯 단계(운영 순서)

OpenSSH 기준; 아래 목록은 명령 블록과 동일한 순서입니다.

  1. sshd -T로 maxsessions·maxstartups·clientalive 값을 기록해 보관합니다.
  2. sshd_config를 수정한 뒤 sshd를 재시작하고 동일 명령으로 재확인합니다.
  3. CI 러너와 운영자 PC에 ServerAliveInterval·ServerAliveCountMax를 넣습니다.
  4. GitHub Actions matrix에 max-parallel을 낮추거나 업로드 전용 큐를 둡니다.
  5. 활성 SSH 수, 끊김 errno, 처리량(MB/s)을 일 단위로 로그에 남깁니다.
sshd -T | egrep 'maxsessions|maxstartups|clientalive'
Host your-remote-mac
  ServerAliveInterval 30
  ServerAliveCountMax 6

GUI는 도구 가이드의 keepalive 항목을 켭니다.

숫자 기준

클라이언트 ServerAliveInterval 약 30초, 서버 ClientAliveInterval 약 60초가 기업 유휴 타이머를 자주 통과합니다. CI 재시도는 지수 백오프를 권장합니다: 첫 실패 후 15~30초, 다음은 60초 등. 단일 객체가 약 5GiB를 넘으면 청크·검증을 검토하고 일관성은 스테이징+심링크에 맡깁니다.

운영 지표 예시: 피크 시간대 평균 동시 SFTP 세션 수, 시간당 재시도 횟수, 중간 장비에서 관측된 TCP idle 타임아웃(분). 이 셋을 대시보드에 두면 “서버가 불량”인지 “한도·네트워크”인지 빠르게 갈립니다.

FAQ와 관리형 원격 Mac

  • 병렬에서 끊김=서버 고장? 한도·NAT·keepalive부터 확인.
  • SFTP와 rsync 경쟁? 예, SSH 예산을 함께 씁니다.
  • 원자 릴리스와? 릴리스는 읽기 일관성, 본문은 전송 안정성.

정리: 제한 병렬과 keepalive만으로도 대부분의 ‘이유 없는 끊김’이 줄어듭니다. 한계: 개인 노트북을 빌드 서버로 쓰면 수면·업데이트·수동 sshd 변경이 누적됩니다. SFTPMAC: 관리형 원격 Mac과 SFTP 디렉터리 격리로 가용성·권한 기준선을 고정하고, 팀은 파이프라인과 릴리스 게이트에 집중할 수 있습니다.

세션 경쟁을 줄이고 격리된 원격 Mac에서 SFTP·CI를 운영하려면 SFTPMAC 요금제를 확인하세요.