[컨테이너 공급망] Day 5: 운영과 폐기 - 실행 중인 이미지를 끝까지 관리하기
이 글은 AI(Claude)의 도움을 받아 작성하고, 작성자가 검토·편집했습니다.
서론: 오늘의 문제
안전한 이미지를 한 번 빌드해도 base image와 의존성은 계속 노후화된다. 실행 inventory, 재빌드, 단계적 배포와 폐기로 공급망의 마지막 구간을 운영한다.
1. 실행 Inventory
registry에 있는 이미지가 아니라 실제 환경에서 실행 중인 digest를 수집한다. 서비스와 소유 팀, 환경, 배포 시간을 연결해야 취약점의 실제 영향 범위를 알 수 있다.
2. 정기 재빌드
애플리케이션 코드가 바뀌지 않아도 base image 보안 업데이트를 받기 위해 재빌드한다. 새 digest는 동일한 테스트와 승격 절차를 거친다.
3. 취약점 우선순위
CVSS 점수만 보지 말고 package가 실행 경로에 있는지, 외부 노출과 권한, 완화책을 함께 평가한다. 수정 가능한 버전과 배포 위험을 기준으로 SLA를 둔다.
4. 단계적 배포와 롤백
새 base image는 canary에서 기능과 성능, 시작 시간 차이를 확인한다. 롤백할 이전 digest와 데이터 호환성을 보존한다.
5. Registry 수명주기
tag와 artifact 보존 정책을 두되 실행 중인 digest와 감사에 필요한 증거를 먼저 보호한다. 사용하지 않는 이미지와 연결되지 않은 attestation을 안전하게 정리한다.
6. 자주 실패하는 방식
scanner 알림을 모두 같은 긴급도로 처리하면 중요한 노출이 backlog에 묻힌다. registry 정리 정책이 실행 중 digest를 삭제하면 재스케줄링과 복구가 실패할 수 있다.
7. 관측과 검증
실행 이미지 나이, critical 취약점 노출 시간, 재빌드 주기, canary 실패, 사용하지 않는 artifact 비용, 삭제 실패를 관리한다. 기준값은 정상 시간대와 변경 전후를 비교해 정하고, 점검 결과가 실제 행동으로 이어지는지 정기적으로 확인한다.
실행 흐름
1
2
3
4
5
6
7
8
9
1. 실행 Inventory
↓
2. 정기 재빌드
↓
3. 취약점 우선순위
↓
4. 단계적 배포와 롤백
↓
5. Registry 수명주기
개별 도구보다 이 순서를 팀의 설계 리뷰와 Runbook에 남기는 것이 중요하다. 상황이 달라져도 판단 근거와 검증 결과가 이어져야 한다.
실전 체크리스트
- 실행 Inventory: 기준과 책임자를 문서화했다.
- 정기 재빌드: 기준과 책임자를 문서화했다.
- 취약점 우선순위: 기준과 책임자를 문서화했다.
- 단계적 배포와 롤백: 기준과 책임자를 문서화했다.
- Registry 수명주기: 기준과 책임자를 문서화했다.
- 실패 패턴을 재현하고 안전한 복구 경로를 확인했다.
- 핵심 신호를 대시보드와 변경 검증에 연결했다.
참고 자료
시리즈 마무리
이번 연재에서 다룬 원칙을 실제 시스템의 설계·배포·운영 흐름에 연결해 반복 가능한 기준으로 만들자.