본문 바로가기
Hello World/IaC

IaC(Infrastructure as Code) 란?

by Run DaramG 2020. 12. 17.
IaC(Infrastructure as Code) 란?

IaC(Infrastructure as Code) 란 말 그대로 인프라 구축을 스크립트화(코드화) 하여 자동화하는 것이다. 코드를 이용해 시스템을 자동으로 구축, 관리, 프로비저닝 하는 IT 인프라 프로비저닝 프로세스의 일종이다. 신규 VM 환경을 구성한다거나, 여러대의 가상머신에 직접 수동으로 업데이트 해야 했던 업무등을 자동화하여 쉽고 빠르게 관리할 수 있다. 또한 인프라가 코드의 형태로 기록되므로 인프라 변경사항을 쉽게 확인이 가능하다는 장점이 있다.

 

IaC 관련 Tool 

Docker : 컨테이너 가상화 환경에서 애플리케이션을 관리하고 실행하기 위한 오픈소스 플랫폼. Linux 위에서 동작하며, 인프라 환경을 컨테이너에 담고 해당 Docker 이미지를 기반으로 어디에서든 컨테이너를 동작시켜 동일한 인프라를 구축 할 수 있다. 기본 요소는 DockerFile 이다. 도커 이미지에 들어갈 내용을 DockerFile에 정의해놓고, 이미지를 띄운다음(docker build), 컨테이너를 실행(docker run) 하여 사용한다.

 

Ansible : 원격 프로토콜을 이용해서 배포, 구성 및 오케스트레이션을 제공하는 자동화 도구. 여러개의 서버를 효율적으로 관리하기 위해 고안된 환경 구성 자동화 도구이다. 중앙서버에서 여러 서버에 SSH 로 통신하며 원격으로 서버를 관리할 수 있다. 기본 요소는 Inventory 파일(서버 지정)과 Playbook (무엇을 할것인지 작업 정의)이다. OS 설치, 다운로드, 환경설정, 실행 등의 작업을 자동화 시킬 수 있다. 

 

Kubernetes : 컨테이너 작업을 자동화하는 오픈소스 플랫폼. 도커가 단일 컨테이너 관리에 적합하도록 만들어져 있다면, 수백개의 컨테이너를 통합관리(오케스트레이션)한다. 오케스트레이션을 통해 컨테이너의 생성과 소멸, 스케쥴링, 로드 밸런싱, 클러스터링 등 컨테이너로 애플리케이션을 구성하는 모든 과정을 관리할 수 있다.

댓글