피드로 돌아가기
Dev.toDevOps
원문 읽기
ACL 기반 권한 제어 및 1.9GiB Chunking을 통한 백업 자동화 안정성 확보
My Backup Failed Twice: Docker Permissions, Then GitHub's 2 GiB Limit
AI 요약
Context
Self-hosted agent 기반의 자동 백업 시스템에서 Docker Volume 권한 충돌과 GitHub Release의 파일 크기 제한으로 인한 업로드 실패 발생. 단순 툴 실행을 넘어 호스트 OS 권한 모델과 원격 저장소의 전송 제약 사항이 결합된 운영상 병목 지점 확인.
Technical Solution
- Root 권한 남용을 방지하기 위해 setfacl을 활용하여 백업 전용 유저에게 필요한 최소 권한(rx)만 부여한 Least Privilege 설계
- Default ACL 설정을 통한 향후 생성 파일에 대한 권한 상속 자동화로 권한 관리 오버헤드 제거
- GitHub Release의 2GiB 제한 우회를 위해 1.9GiB 단위로 파일을 분할하는 Deterministic Split 로직 도입
- 업로드 전 로컬 검증(Verify) 단계를 추가하여 손상된 아티팩트의 원격 전송을 원천 차단하는 파이프라인 구성
- 동일 태그 존재 시 삭제 후 재생성하는 로직을 통한 백업 작업의 Idempotency 확보
- Trap 구문을 활용한 로컬 임시 파일 강제 삭제로 디스크 풀(Disk-full) 장애 예방
실천 포인트
- 백업 프로세스 설계 시 Root 권한 대신 ACL을 통한 세밀한 읽기 권한 부여 검토 - 원격 저장소의 단일 파일 업로드 제한(Quota) 확인 및 분할 업로드 전략 수립 - 업로드 전 단계에서 체크섬 또는 무결성 검증 프로세스 필수 포함 - 복구 명령어를 아티팩트 메타데이터(Release Notes)에 포함하여 복구 시간(MTTR) 단축