✅ [C911] 가변적(mutable) 인프라와 불변적(immutable) 인프라의 차이는 무엇인가요?
가변 인프라와 불변 인프라 사이의 가장 근본적인 차이는 central policy에 있다.
Mutable Infrastructure:
서버를 수동으로 수정할 수 있다.
서버에 로그인하여 구성을 변경하고 패키지를 설치/수정할 수 있습니다.
Immutable Infrastructure:
일단 배포되면 서버를 수정할 수 없다.
구성을 변경해야 하는 경우 기존 이미지를 업데이트하고 새 서버를 가동하여 이전 이미지를 교체할 수 있습니다.
서버가 실행되는 동안에는 구성 또는 코드 변경이 허용되지 않습니다.

좀 더 자세히 설명하자면, 서버 기반의 가변 인프라와 불변 인프라 사이에는 practical 및 conceptual 적인 차이가 있다.
conceptual
두 종류의 인프라는 서버를 어떻게 다루어야 하는지에 대한 접근 방식(예: 생성, 유지 관리, 업데이트, 제거)이 크게 다릅니다. 이것은 일반적으로 "pets vs cattle”의 비유로 설명된다.
DevOps Concepts: Pets vs Cattle
https://iamondemand.com/blog/devops-concepts-pets-vs-cattle/
practical
Mutable 인프라는 가상화 및 클라우드 컴퓨팅과 같은 불변의 인프라를 실현하고 실용적으로 만드는 핵심 기술보다 훨씬 오래된 인프라 패러다임이다.
이 역사를 알면 둘 사이의 개념적 차이와 현대 인프라에서 하나를 사용하거나 다른 하나를 사용하는 것의 의미를 contextualize 하는 데 도움이 된다.
오늘날의 분산 시스템은 불변의 인프라 개념을 채택하고 있다.
시스템 아키텍처에 불변성을 적용하여 구축하면 몇가지 이점이 있다.
간단히 요약하자면, 변경할 수 없는 인프라가 있다는 것은 서버의 구성을 변경하고자 할때, 기존 서버에서 수정하는것이 아닌 업데이트된 구성으로 새로운 서버를 구축한다는 의미이다.
What is drift?
리소스의 실제 속성 값이 예상 속성 값과 다른 경우 리소스가drift된 것으로 간주한다. Drift detection를 사용하면 스택의 실제 구성이 예상구성과 다르거나 드리프트 되었는지 여부를 감지할 수 있다.