세 가지 통증: 미러를 곧바로 공개 디렉터리에 두지 말 것
첫째, 미러를 고객이 보는 트리에 직접 겨냥함.rclone은 소스와 일치하는 디렉터리를 잘 유지하지만 잘못된 필터나 상위 삭제가 그대로 전파됩니다. iOS·macOS 산출물을 올리는 원격 Mac에서는 먼저 스테이징에 넣고 원자적 릴리스 심볼릭 전환을 쓰는 편이 안전합니다.
둘째, internal-sftp 전제와 도구 가정 불일치.chroot된 SFTP 전용 계정은 셸이 없습니다. rclone SFTP remote는 동작하지만 원격 명령 전제를 쓰면 타임아웃만 남습니다. Chroot 다중 테넌트로 소유권과 jail 루트를 확인하세요.
셋째, rclone.conf에 비밀이 남음.러너에서 대화형 rclone config를 돌리면 다음 잡까지 파일이 남아 자격 수명이 늘어납니다. CI/CD 자격 증명 글과 같이 단명 키·환경 분리를 적용합니다.
보충: 미러와 업로드는 Unix 계정이나 접두사로 분리하고 동시 SFTP와 rclone --transfers를 맞춥니다. 미러 대상을 current 심볼릭에 직접 두지 마세요. 비밀 conf는 저장소에 넣지 말고 잡마다 주입합니다. 배스천·SSH 인증서는 ProxyJump를 remote에 기록합니다.
역할 비교: rclone, rsync over SSH, 대화형 SFTP
rsync over SSH는 알려진 경로 간 델타 전송에 적합하며 --partial·검증·릴리스 게이트와 함께 CI에서 널리 쓰입니다.대화형 SFTP는 수동 진단용입니다.rclone은 S3 호환 등 여러 백엔드를 같은 문법으로 다룰 때 강합니다. 단일 원격 Mac 입구에서는 rsync 대체재가 아니라 보완입니다.
SFTP remote는 공개키·인증서·known_hosts·배스천 정책을 기존 운영과 일치시켜야 합니다. checksum 계열 플래그는 무결성·감사 글과 같이 종료 코드 0이 비즈니스 승인을 뜻하지 않음을 상기시킵니다.
읽기 전용 미러는 Mac에서 rclone을 스케줄하고 CI가 쓰는 트리와 권한으로 격리합니다.
의사결정 매트릭스
방향·계정·접두사·삭제 허용·원자 릴리스 연계를 티켓에 남깁니다.
| 시나리오 | 권장 | 주요 위험 | 관련 글 |
|---|---|---|---|
| CI가 releases 스테이징에 산출물 투입 | rsync over SSH | in-place 반쯤 공개 | 원자·무결성 |
| 오브젝트 스토리지→Mac 자산 미러 | rclone | sync 삭제 | Chroot·RO 계정 |
| 수동 점검 | SFTP 클라이언트 | 자동화 부재 | 도구 선정 |
| 다중 클라우드→단일 Mac 입구 | rclone+명명 규칙 | 자격 분산 | CI 자격·SSH CA |
여러 도구 공존 시 책임 경계를 계정과 sshd Match로 고정합니다.
실무: SFTP remote까지 7단계
테스트 경로에서 검증하고 비밀은 잡 내부에만 둡니다.
# 1 internal-sftp·접두사를 Chroot 글대로 확인
# 2 RUNNER_TEMP에 단명 ed25519 생성
rclone config create mac_sftp sftp host sftp.example.com user mirror_ro key_file "$RUNNER_TEMP/ci_ed25519" shell_type none
rclone lsd mac_sftp:uploads
rclone copy ./marker.txt mac_sftp:uploads/ci_probe/ -v
rclone copy ./assets mac_sftp:assets_mirror/ --transfers 4 --checkers 8 --sftp-connections 2 -v
# sync는 dry-run 후 삭제 감사 필수
# releases/BUILD_ID만 동기화하고 current 전환은 별도 스크립트
운영에서 sync를 쓰면 삭제 집합을 검토하고 공개 트리에는 copy를 우선합니다.
정량 기준
초기 --transfers 4에서 sshd CPU·RTT를 보며 조정합니다. checkers와 sftp-connections의 곱은 세션 예산 안에 둡니다. WAN에서는 ServerAliveInterval 60을 맞춥니다. SHA256 매니페스트 릴리스 게이트는 별도로 유지합니다.
다중 입구 운영이 부담이면 SFTPMAC 호스팅 원격 Mac으로 입구·테넌트 격리를 묶습니다. 핸드셰이크 P95가 800ms를 넘으면 배스천과 세션 테이블을 먼저 봅니다.
FAQ·호스팅 Mac
rclone으로 CI 릴리스를 대체할 수 있나
원자 디렉터리 의미를 재설계할 수 있다면 가능하지만 많은 팀은 rsync로 델타를 밀고 rclone은 미러에 둡니다.
읽기 전용 키 재사용 위험
다른 워크플로에 복사하면 덮어쓰기 위험이 남습니다. 키·remote 이름을 쪼개 sshd Match로 접두사를 강제하세요.
OIDC 단명 자격 연결
잡 시작 시 키 파일을 쓰고 종료 시 폐기합니다.
요약: rclone과 rsync/SFTP는 보완 관계입니다. 경계·무결성·동시성을 맞추면 동기화는 감사 가능한 능력이 됩니다.
한계: 자체 다중 테넌트는 공수가 큽니다. SFTPMAC은 격리·입구를 패키지화해 빌드·배포에 집중하게 합니다.
격리된 원격 Mac에서 미러와 rsync 릴리스를 함께 운영하려면 요금제를 확인하세요.
