AI / Automation 2026년 5월 13일

대여 Mac mini M4에서의 OpenClaw 업그레이드·롤백 운영 런북 (2026-05-13): semver 규율, tarball 백업, 순서 있는 재시작, 5리전 안전

VpsGona 엔지니어링 팀 2026년 5월 13일 약 16분 분량

시간당 과금 VpsGona Mac mini M4 호스트에서 홍콩·도쿄·서울·싱가포르·미동부에 걸쳐 OpenClaw를 돌리는 팀은 ‘애완’ 노트북과는 다른 업그레이드 리스크를 맞습니다: tarball이 복사되고 의존성 트리가 내려받고 게이트웨이 소켓이 재시작되는 동안에도 과금 시계는 흘러갑니다. 이 런북은 순서대로 세 가지를 답합니다: 바이너리를 건드리기 전에 무엇을 동결할지, 워커를 고아로 남기지 않고 9단계 컷오버를 어떻게 수행할지, 짧은 대여 창 안에서 언제 롤백이 전진 수정보다 나은지. 사전 동결·롤백 두 개의 결정표, 예를 들어 실패 선언 전 45분짜리 집중 유지보수를 예산에 넣는 같은 수치 가드레일, 페어링 루프·semver 편차에 맞춘 FAQ가 있습니다.

첫 1시간 부트스트랩 체크리스트 다음에 읽고, openclaw doctor를 장식용으로 보기 전에 — 데몬이 재부팅 후에도 살아야 하면 launchd 스케줄링, 업그레이드 중 자격 증명을 돌리기 전에 SecretRef 거버넌스, 같은 대여 슬라이스에서 엔지니어가 컴파일하면 Xcode 공존을 짝지으세요.

시간당 Apple Silicon 대여에서 업그레이드가 “그냥 apt upgrade”가 아닌 이유

대여 Mac mini M4는 청구서가 덮는 동안만 상태를 유지합니다. 그래서 가역적인 파일 시스템 변경, 공격적으로 고정한 semver, (로그·tarball 체크섬·plist 사본 같은) 증빙을 원합니다 — 다음 운영자가 새벽 2시에 공유된 근육 기억 없이 당신일 수 있기 때문입니다. OpenClaw는 게이트웨이 권한과 도구 노출이라는 두 번째 층을 더해, SSH가 되는데도 워커가 pairing-required에 갇히게 할 수 있습니다.

  • 시간 압박: RTT가 큰 경로에서 3GB 의존성을 다시 받으면 업그레이드가 아껴 주는 것보다 과금 시간을 더 태울 수 있습니다 — 풀하기 전에 측정하세요.
  • 단일 리스너: 부분 재시작 뒤 게이트웨이 프로세스가 두 개면 로그 발굴에 시간이 탑니다 — 다음 단계 전에 포트를 증명하세요.
  • 자격 증명 회전: 짧은 대여는 주기당 회전에 유리하고, 업그레이드는 토큰을 잘못 다루기 가장 위험한 순간입니다.
증거 기준: 성공을 선언하기 전에 최소 검증 가능한 사실 세 가지를 모으세요: 게이트웨이·워커에 출력된 semver, 정책 로드를 보여 주는 게이트웨이 로그 한 줄, 성공한 경계가 있는 도구 프로브 — 그보다 적으면 낙관이지 운영이 아닙니다.

업그레이드 전 동결 매트릭스 (네 축)

이 매트릭스를 go/no-go 게이트로 쓰세요. 한 행이라도 빨간색이면 패키지 매니저를 건드리기 전에 환경을 고치지 않으면 업그레이드가 미스터리 장애로 위장합니다.

녹색 신호 빨간 신호 운영 조치
디스크 예산 작업 중간에 지울 수 없는 캐시를 제외한 뒤 ≥ 35GB 여유 설치 프로그램이 없는 공간을 요구 아티팩트 정리, 요금으로 SKU 조정, 또는 업그레이드 연기
Semver 결합 게이트웨이와 워커가 같은 릴리스 채널에 고정 한쪽은 nightly, 한쪽은 stable 채널 맞추기, 둘 다 재설치, 아래 순서로 재시작
데몬 소유권 게이트웨이 포트를 소유하는 LaunchDaemon이 정확히 하나 사용자 셸과 plist가 모두 게이트웨이 기동 중복 언로드, 활성 plist 문서화 (launchd 가이드)
사람 페어링 SLA 12분 안에 조인 승인 가능한 사람이 있음 승인자가 시간대 너머로 오프라인 업그레이드 일시 중지 — 만료된 페어링이 기다림보다 더 비쌉니다

백업 원장: 바이너리가 움직이기 전 tarball에 들어갈 것

티켓에 붙일 tarball 매니페스트를 만드세요: 설정 트리, 실제로 로드된 plist 사본, 비밀을 가린 환경보내기 스니펫, SecretRef 이름 목록(값 아님). 목표는 완벽한 보관이 아니라 semver가 비뚤어질 때 20분 안 롤백입니다.

  1. 호스트 라벨: 리전(HK/JP/KR/SG/US East), 대여 ID, 게이트웨이 모드(공동 배치 vs 분리).
  2. 설정 스냅샷: 런북이 가리키는 설정 디렉터리를 tar — tarball 크기를 폭발시키는 휘발 캐시는 제외.
  3. plist 복사: launchctl이 실제로 로드한 파일을 보관 — 다운로드 폴더에 남은 파일이 아님.
  4. 포트 기록: 리스너 목록을 텍스트 스니펫으로 — 기본값이 바뀌면 업그레이드가 포트를 바꾸기 좋아합니다.
  5. 체크섬: 티켓에 tarball SHA-256을 적어 롤백 전 손상을 잡습니다.

SecretRef 글에서 게이트웨이 간접 참조를 이미 썼다면 tarball은 원시 API 키 대신 핸들과 회전 노트를 가리켜야 합니다 — 인턴이 시간당 호스트로 실험할 때 특히 그렇습니다.

9단계 컷오버 (게이트웨이 + 워커 안전 경로)

두 프로세스 토폴로지를 가정합니다; 공동 배치 게이트웨이는 순서만 접지만 같은 증명을 유지합니다.

  1. 창 공지: 채팅에 명시적 시작 시각과 최대 45분 예산으로 유지보수 게시.
  2. 워커 먼저 중지: 도구 루프 비우기 — 진행 중인 CI 자동화 없음 확인.
  3. 게이트웨이 중지: 리스너 체크리스트로 포트 비었는지 검증.
  4. 고정 semver 설치: 양쪽에 같은 패키지 URL — 티켓에 명령 기록.
  5. 설정 이전: 릴리스 노트를 수동 적용 — 맹목 복사는 폐기된 키를 남깁니다.
  6. 게이트웨이 기동: 정책 로드 성공까지 로그 감시.
  7. 워커 재연결: 전송이 바뀌면 페어링 재실행 — 옛 토큰 가정 금지.
  8. doctor 실행: 권한이나 누락 도구를 언급하면 경고를 차단으로 취급.
  9. 스모크 자동화: 경계가 있는 읽기 전용 프로브 하나와 스테이징 경로에서만 대표 쓰기 경로 하나.
의미 있는 숫자: 12분 페어링 SLA와 45분 전체 유지보수 상한을 강제하는 팀이, 프로덕션에 가까운 대여에서 “그냥 nightly”를 시도하는 팀보다 롤백이 적습니다.

롤백 결정표 (언제 semver를 되감을지)

증상 묶음 먼저 전진 수정?
설정이 그대로인데 업그레이드 후 권한 루프 아니요 — 이전 semver 복원, 재페어링, 릴리스 노트 이분
로그에 패키지 이름이 분명한 단일 누락 도구 예 — 애드온 설치, doctor 재실행, 새 semver 유지
중복 게이트웨이 리스너 감지 예 — 잘못된 plist 언로드, 정리 전 로그 스냅샷
설치 중 디스크 가득, 반쯤 쓰인 바이너리 아니요 — tarball 롤백 후 공간 확보하고 재시도

대형 의존성 트리를 위한 5리전 풀 가드레일

VpsGona는 다섯 지리에 동일한 Mac mini M4 클래스를 노출하지만 npm·git·컨테이너 레지스트리가 대여 리전을 따라오지는 않습니다. 업그레이드 전에 미러에 가장 가까운 지리에서 무거운 아티팩트를 프리페치하거나, 지연 벤치마크 글을 따라 측정상 RTT가 낮은 노드에서 잠시 작업하세요. 다중 GB 트리는 경로 선택만으로 벽시계에 8–22분 변동이 생길 수 있다는 룰 오브 썸 — 어떤 호스트가 무엇을 당겼는지 문서화해 재무가 청구 스파이크를 설명 가능한 작업에 매핑하세요.

팀이 APAC과 미동부에 나뉘어 있으면 패리티를 선언하기 전에 양쪽에 tarball을 복제하세요 — 시간당 시계에서 대양 rsync가 공짜라고 가정하지 마세요.

업그레이드 후 검증 체크리스트

검증은 “doctor 통과”가 아닙니다. semver 문자열, 페어링 상태, 리스너 테이블, 자동화 트레이스 ID 하나를 모아 티켓에 붙이세요. OpenTelemetry 모드 관측을 켰다면 익스포터가 깨끗이 재시작했는지 확인 — 반쯤 연결된 OTLP 엔드포인트는 큐가 쌓일 때까지 조용한 성공처럼 보입니다.

  • 게이트웨이 로그 한 줄: 시작 후 120초 안에 정책 로드와 리스너 바인드 표시.
  • 워커 조인: 의도적 승인 후 대기 큐가 비어 있어야 함.
  • CPU 점검: 스모크 후 Apple Silicon은 유휴 — 지속 페깅은 런어웨이 루프 힌트.

FAQ: 클라우드 Mac에서의 업그레이드 마찰

부분 업그레이드는 실제로 어떻게 보이나요?

지루합니다: 누락 도구, 낡은 기능 플래그, 페어링 루프 — 화려한 스택트레이스는 드뭅니다. 매 변경 후 양쪽 semver를 출력하는 것이 관련 없는 Xcode 구성요소를 재설치하는 것보다 쌉니다. 재페어링을 강제하는 전송 조정이 릴리스 노트에 있는지 교차 확인하세요.

가장 안전한 재시작 순서는?

워커를 먼저 멈춰 반쯤 업그레이드된 API 표면을 읽지 않게 하고, 둘째로 게이트웨이를 재시작한 뒤, 로그가 건강한 리스너를 증명한 뒤에만 워커를 다시 연결하세요. 순서를 뒤집으면 split-brain 도구 카탈로그로 이어집니다.

업그레이드 시도 사이에 호스트가 재프로비저되면?

재해 복구 훈련으로 취급: tarball과 티켓 노트만으로 서 있어야 합니다. 패키지 재설치 전에 설정을 재수화하고 부트스트랩 체크리스트를 다시 실행해 신뢰 경계를 재구축하세요.

openclaw doctor가 릴리스를 막아야 할 때는?

경고가 권한, PATH에 없는 실행 파일, TLS 정책 불일치를 말할 때 — 정합성 문제입니다. 폰트 같은 장식 경고는 기다릴 수 있지만 비밀이나 리스너를 건드리는 것은 안 됩니다.

Xcode 아카이브가 도는 동안 OpenClaw를 업그레이드할 수 있나요?

책임 있게는 안 됩니다. 긴 빌드를 멈추고 디스크가 빠듯하면 DerivedData를 비우고 공존 가이드를 읽으세요 — 무거운 컴파일러와 게이트웨이 재시작을 동시에 돌리면 16GB SKU에서 메모리 압박이 커집니다.

업그레이드 규율에 VpsGona Mac mini M4가 맞는 이유

Apple Silicon Mac mini는 예측 가능한 열과 통합 메모리 대역폭으로 게이트웨이 오케스트레이션과 적당한 자동화를 노트북식 스로틀 없이 한 기계에 유지합니다. 대여는 자본 리스크를 시간 상자 실험으로 바꿉니다: 월요일에 semver 고정, 화요일에 롤백 리허설, 수요일에 계측 — OpenClaw 페어링 모델과 맞물립니다. 각 대여 주기는 책상 아래 잊힌 데몬이 아니라 깨끗한 권한 경계입니다.

이 런북을 따른 뒤에도 업그레이드가 버티면 tarball 체크섬·리스너 테이블·doctor 출력으로 헬프 센터에 에스컬레이션하세요 — 증거가 구조화돼 있으면 지원이 더 빠릅니다. 블로그 인덱스에서 인접 주제를 보거나 업그레이드 중 대화형 단계가 필요하면 VNC 안내를 여세요.

위험한 semver 점프 전에 깨끗한 호스트 대여

HK·JP·KR·SG·미동부에 Mac mini M4 노드를 띄우고 스테이징 대여에서 업그레이드를 리허설한 뒤 프로덕션 트래픽을 전환하세요.