불변 인프라

불변 인프라 (Immutable infrastructure)

불변 인프라가 무엇이고 Docker Hardened Images가 이를 어떻게 지원하는지 알아볼게요.

출처: 문서

본문

불변 인프라는 서버, 컨테이너, 이미지 같은 구성 요소가 배포 후 절대 수정되지 않는 보안·운영 모델이에요. 라이브 시스템을 패치하거나 재구성하는 대신 새 버전으로 완전히 교체해요.

Docker Hardened Images를 사용할 때 불변성은 소프트웨어 공급망의 보안 자세를 강화하는 모범 사례예요.

불변성이 중요한 이유 (Why immutability matters)

가변(mutable) 시스템은 보호하고 감사하기 더 어려워요. 실시간 패칭이나 수동 업데이트는 다음 위험을 도입해요:

  • 구성 드리프트
  • 추적되지 않은 변경
  • 일관되지 않은 환경
  • 증가한 공격 표면

불변 인프라는 제어되고 반복 가능한 빌드와 배포를 통해서만 변경함으로써 이를 해결해요.

Docker Hardened Images가 불변성을 지원하는 방식 (How Docker Hardened Images support immutability)

Docker Hardened Images는 최소·고정·비대화형으로 빌드되어 그 자리에서의 수정을 억제해요. 예를 들어:

  • 많은 DHI 이미지가 셸, 패키지 매니저, 디버깅 도구를 제외해요
  • DHI 이미지는 배포 전에 스캔·서명되도록 설계돼요
  • DHI 사용자는 실행 중인 컨테이너를 패치하는 대신 이미지를 재빌드·재배포하도록 권장돼요

이 설계는 불변 관행과 정렬되어 다음을 보장해요:

  • 업데이트가 CI/CD 파이프라인을 통과
  • 모든 변경이 버전 관리되고 감사 가능
  • 시스템을 일관되게 롤백하거나 재현할 수 있음

실제 불변 패턴 (Immutable patterns in practice)

불변성을 활용하는 일반적인 패턴은 다음과 같아요:

  • 컨테이너 교체: 버그를 고치거나 패치를 적용하려고 컨테이너에 로그인하는 대신 이미지를 재빌드하고 재배포.
  • IaC(Infrastructure as Code): 버전 관리되는 파일에 인프라와 이미지 구성을 정의.
  • Blue/Green 또는 Canary 배포: 기존 이미지 옆에 새 이미지를 출시하고 점진적으로 새 버전으로 트래픽을 이동.

불변 인프라 원칙을 강화된 이미지와 결합하면 변조에 저항하고 장기 위험을 최소화하는 예측 가능하고 안전한 배포 워크플로우를 만들 수 있어요.

더 알아보기 (Learn more)