컨테이너 레지스트리 모범 사례
개요
태그 관리 전략
Immutable Tags 사용
# ❌ 문제: Mutable 태그
image: myapp:latest
# - 배포 간 이미지가 다를 수 있음
# - 롤백 시 어떤 버전인지 불명확
# - 감사 추적 불가
# ✅ 해결: Immutable 태그
image: myapp:v1.2.3
# - 항상 동일한 이미지 보장
# - 명확한 버전 추적
# - 재현 가능한 배포Semantic Versioning
:latest 태그 금지
Tag Promotion Workflow
이미지 네이밍 컨벤션
표준 형식
환경 접두사
Multi-arch 태그
메타데이터 태그
레지스트리 미러링 및 캐싱
containerd 레지스트리 미러 설정
ECR Pull-through Cache
Harbor Proxy Cache
외부 의존성 최소화
재해 복구
멀티 리전 복제
백업 전략
RTO/RPO 고려사항
복제 전략
RPO
RTO
비용
비용 최적화
Lifecycle Policies
이미지 크기 최적화
전송 비용 절감
ECR vs 자체 호스팅 비용 비교
항목
ECR (500GB)
Harbor (EC2)
보안 체크리스트
1. 이미지 스캐닝
2. Admission Controller (서명된 이미지만 허용)
3. 최소 권한 원칙
4. 네트워크 정책
5. 보안 체크리스트
CI/CD 통합 패턴
GitHub Actions + ECR
GitLab CI + ECR
Build-Push-Scan-Deploy 파이프라인
ArgoCD 이미지 업데이트 자동화
skopeo를 활용한 이미지 관리
skopeo 설치
skopeo inspect — 원격 이미지 검사
skopeo copy — 레지스트리 간 이미지 복사
skopeo sync — 대량 레지스트리 동기화
에어갭 환경 이미지 전송
도구 비교
기능
skopeo
docker
crane
ctr
요약
카테고리
권장 사항
참고 자료
마지막 업데이트