Print
카테고리: [ Cloud Computing & MSA ]
조회수: 13538

1. 개요

이 게시판에 보면 Terraform에 대해 소개한 글이 있다. 해당 글에서도 얘기하고 있는데, Terraform은 AWS의 CloudFormation과 같은 대표적인 IaC(Infrastructure as Code) 툴이다. 

아래 이미지는 Terraform 홈페이지에 있는 것이다.

 

이미지 빌드와 구성 관리 기능을 모두 지원하고 모니터링 기능까지 추가되어 있는 통합 관리 도구 같은 느낌인 툴이다. 

툴들이 제공하는 기능들을 보면 IaC가 대략 어떤 개념인지 알 수 있겠지만, 본 글에서 한번 정리해보고자 한다. 


2. Infrastructure as Code

"프로그래밍형 인프라"라고도 말하는데, 인프라 구성을 코드를 이용해 자동으로 구축, 관리, 프로비저닝하는 IT 인프라 프로비저닝 프로세스의 일종이라고 한다. 

프로비저닝, 시스템 변경 및 구성에 대해 일관되게 반복되는 과정을 (잘 짜여진! 정확한) 코드를 통해 자동화하면 빠르게 변경/구성할 수 있을 뿐더러 

우리가 수동으로 구성했을 때 누락하거나 잘못 설정하는 등의 실수를 없앨 수 있다는 장점이 있다.

(요약하자면, 반복작업을 자동화하여 작업 시간을 단축할 수 있고 휴먼에러 감소 및 빠른 복원의 장점이 있다는 것.)

예를 들어 내가 관리하고 있는 EC2 인스턴스 수십개의 type을 변경해야 한다면 코드 하나로 간단하고 빠르게 변경이 가능하다는 거다. (비용 절감 효과까지!)

IaC라는 개념은 DevOps가 부상하게 된 토대가 되었는데, 인프라 구성을 위한 코드와 애플리케이션 실행을 위한 코드의 경계가 좁아지면서 개발자와 운영자의 경계도

모호해지게 된 것이다. 


3. Infrastructure as Code 구현을 위한 주요 기술

 IaC를 구성하기 위해서는 HW Layer 위에 Orchestration과 Configuration, Bootstrap 기능이 필요하다. 

 1) Orchestration

    Jenkins + Fabric , Mcollective, SaltStack

 2) Configuration

    Chef, Ansible, Puppet

 3) Bootstrap

    Vagrant, Docker, Cloud CLI