Skip to content

Latest commit

 

History

History
14 lines (9 loc) · 1.86 KB

Immutable_infrastructure.md

File metadata and controls

14 lines (9 loc) · 1.86 KB

Immutable infrastructure

등장 배경

미들웨어나 애플리케이션을 운영하다보면 상황에 따라 여러 가지 업데이트를 적용해야 한다. 실제 시스템에 수정 프로그램 패치를 적용하고 그때마다 정상적으로 가동되는지를 확인해야만 한다. 또한, 적용 후 예상치 못한 문제에 대응하기 위해 이러한 업데이트 이력, 용도, 버전, 책임자, 날짜 등을 기록해야 한다. 하지만 이런 기록은 하드웨어와 소프트웨어가 늘어나고 복잡해질수록 관리하기가 매우 까다롭다. 이 문제를 해결하기 위해 Immutable infrastructure가 등장했다.

개념

immutable이란 불변을 의미한다. 즉, Immutable infrastructure는 버전업이나 패치를 적용하지 않는 인프라를 가리킨다.

개발 환경을 가상 머신 또는 컨테이너로 만들어 인프라 구축, 폐기, 기동의 부담을 줄이는 장점이 있다. 만약 환경을 변경하고 싶다면 완전히 똑같은 구성이나 능력을 가진 인프라를 따로 마련해두고 거기서 충분한 테스트를 거친 후 문제가 없다고 판단되면 네트워크를 전환하여 인프라를 교체한다.

기존 인프라와 비교

기존 인프라는 시스템 자원이 물리적으로 고정되어 있고 인프라의 구축과 변경은 그 제약 범위 안에서 일어났다. 동일한 물리 서버를 계속 사용하면서 구성을 변경했고, 변경에 따른 이력을 관리해야만 했다.

Immutable infrastructure는 시스템 자원이 가상화 또는 컨테이너화되므로 인프라의 구축과 변경에 물리적인 제약을 받지 않는다. 구성 변경이 필요할 때는 가상 머신이나 컨테이너를 추가하거나 파기하는 방법을 사용한다. 따라서 변경 이력 관리가 아닌 동작 상태 관리를 하게 된다.