본문 바로가기

소프트웨어 이야기/docker

[Docker]완벽한 IT 인프라 구축을 위한 Docker



1-5 인프라에 대한 기초 지식

온프레미스 : 시스템 구축에서 부터 운영까지 자사에 데이터센터를 두고 수행하는 형태를 의미한다.


1-5 인프라 구성관리에 대한 기초 지식

클라우드 시스템과 가상화 기술의 등장으로 이하여, 온프레미스에서는 구축하기 어려웠던 서버 / 네트워크을 이전보다 간단하게 구축할 수 있게 되었다. 이제는 인프라 변경이 필요할 때, 구축된 인프라를 파기하고, 새로 구축하는 것이 가능하게 되었다. 이전 처럼 인프라 변경 이력을 관리할 필요성이 줄어들었다. 이제는 현재 가동 중인 인프라 상태만 관리하면 되는 환경으로 변하고 있다. 이러한 인프라를 Immutable infrastructure (불변 인프라)라고 한다.


infrastructure as code

온프레미스 환경에서는 서버를 띄우려면 장비 셋업이 필요하다. 그런데 클라우드 환경에서는 장비 셋업 대신, 인스턴스만을 셋팅해주면 된다.

온프레미스 환경에서는를 인프라의 버전 정보와 각 항목별 설정값이 있는 매개변수 시트를 보고, 인프라를 수작업으로 셋팅해주었다. 인프라 환경을 설정해주는 문서를 보고, 사람이 수작업으로 명령문을 실행해주며 인프라를 셋팅해줬었다. 이러한 작업은 몇가지 위험성을 갖고 있다. 중간에 라이브되고 있는 서버의 실제 값과 문서의 내용이 일치하지 않게 되면 시스템에 장애가 발생할 수도 있게 된다. 

그런데 코드로 인프라를 관리할 수 있게 되면 위의 문제를 줄일 수 있다. Dockerfile 같은 인프라를 구성해주는 코드를 git으로 관리해주면, 지난 변경 이력을 쉽게 관리할 수 있다. 그리고 실제 라이브되고 있는 서버의 설정값을 관리하기에도 편리하다.


대표적으로 인프라를 관리하는 툴

대표적으로 인프라를 관리하는 툴은 크게 아래처럼 분류할 수 있다.

  1. OS를 자동으로 부팅하는 툴 ( Bootstrapping )
  2. OS와 미들웨어를 자동으로 설정하는 툴 ( Configuration )
  3. 여러 서버를 자동으로 관리할 수 있는 툴 ( Orchestration )
    • 여러 대의 서버를 자동으로 관리할 수 있게 도와주는 툴이다. 예를 들면, 여러대의 서버에 배포를 쉽게 할 수 있도록 하는 카피스트라노 등이 이에 해당한다.