Infrastructure as Code(IaC)란?
개요
다른 문서들을 읽고 재 정리해서 적는 거라 틀릴 수 있음.
IaC란?
Infrastructure as code의 약자이다. 코드로서 인프라를 관리한다는 의미이다. 기존에는 내가 직접 서버(컴퓨터)를 사고 거기에 OS를 설치하고 세팅하고 프로그램을 올려서 서버를 구축했다. 만약, 트래픽이 많이 몰린다면 동일한 작업을 반복해서 서버를 늘려가야 할 것이다.
하지만, 우리는 사람이기 때문에 똑같이 반복한 것 같은데 오류가 난다. 환경변수 설정에서 오타 하나로 실행이 안되기도 한다. 이 오류를 사람이 하나하나 찾아야 한다.
요즘엔 서버를 직접 사서 쓰지 않는다. 아마존 같은 클라우드 서버에 내 코드를 올려서 서비스를 한다. 하지만, 이 방법도 서버를 직접 구비해야한다는 귀찮음만 사라졌을 뿐이다. 아직, OS를 선택 → 세팅 → 프로그램 업로드의 작업을 사람이 직접해야 한다.
그래서 나온게 이미지이다. VM 1대를 만들고 그 가상머신에 대한 정보를 이미지화해서 저장해놓고, 필요할 때마다 그 이미지로 부터 새 VM을 복사한다. 여기까지만 하더라도 이전보다는 많이 편해졌다. 하지만, 우리는 VM을 콘솔에 복사하기 위한 행위조차 자동화하려고 했고, 그게 바로 IaC이다.
즉, 내가 원하는 VM의 세팅을 이미지로 만들고, 그 이미지로부터 VM 생성 → 세팅 → 소프트웨어 설치 등의 작업을 전부 코드로 자동화하는 것을 의미한다.
자동화에 의한 비용 효율성 증대 이외에도 엄청난 장점이 있는데, 바로 인프라가 코드를 통해 저장이 된다는 것을 각종 설정 정보들이 기록이 가능하다는 점이다. git 같은 저장소에 형상 관리가 되어 유지보수 측면에서도 강력한 이점을 보인다.
댓글남기기