IaaS/IaC(InfraAsCode)

(IaC) Chef, Puppet, Ansible, SaltStack 의 비교

armyost 2022. 3. 3. 17:36
728x90

Chef, Puppet, Ansible, SaltStack 모두 Infra ConfigurationManagement(형상관리) Tool 또는 Framework 이다. 

Infra 형상을 코드화시켜 보관하고 필요시 손쉽게 배포할 수 있도록 하는 도구이다. 

 

이들 도구별 특징을 설명코자 한다.

 

제품별 비교

  Chef Puppet Ansible Saltstack
설명 Opscode가 개발한 오픈소스. Ruby와 Erlang으로 만들어진 툴

다양한 종류의 인프라로 구성되어 있고 안정적인 솔루션이 필요한 환경에 적합
Manifest 작성을 위해 Ruby와 DSL(Domain Specific Language)를 사용

다양한 환경의 인프라에 잘 적용되며 확장성에 초점을 맞춘 환경에 적합
Ansible의 핵심인 Playbook은 YAML로 작성되어 있음

서버를 신속하게 구축하고 활성화시키는 것이 중요한 환경에 적합
명령어느느 YAML, DSL인 반면에 Python 기반의 툴

확장성과 회복력을 중요하게 생각하는 환경에 적합
장점 많은 Recipe를 사용할 수 있음

강력한 Version Control을 지원하는 Git과 잘 융합됨
Puppet Labs라는 강력한 커뮤니티가 있음

리포팅 기능이 우수
Agent가 대상 시스템에 불필요

YAML은 이해하고 배우기 쉬움
셋업 이후 부터는 사용이 쉬움

모든 동작을 모니터링할 수 있도록 리포팅 메커니즘 우수
단점 Ruby에 관한 지식이 상당량 필요

Main 서버가 제어권한이 충분치 않음
고급 작업을 위해서는 Ruby에 관한 지식이 상당량 필요

Main 서버가 제어권한이 충분치 않음
수행속도가 다른 Tool에 비해 상대적으로 느림

YAML은 다른 언어만큼 강력하지 않음
셋언 구문이 약간 난이도가 있음

다른 Tool과 비교해보았을때 상대적으로 완성도가 떨어지는 UI

 

  Chef Puppet Ansible Saltstack
아키텍처 Server/Client Server/Client Client Only Client Only
초기 셋업 난이도 보통 보통 매우 쉬움 보통
사용언어 절차적언어 선언적언어 절차적언어 선언적언어
확장성 확장관리 가능 확장관리 가능 확장관리 가능 확장관리 가능
관리난이도 Ruby DSL을 습득해야하여 관리 난이도 상 Puppet DSL을 습득해야하여 관리 난이도 상 매우 쉬움 매우 쉬움
클라우드활용 AMAZON AMAZON, AZURE N/A N/A
통신방식 Knife Tool SSL SSH SSH
Manifest Recipes : Ruby Puppet Script : DSL Playbook : YAML SLS : YAML

 

 

 

 

아키텍처

 

Chef

 

Puppet

 

Ansible

 

Saltstack

 

'IaaS > IaC(InfraAsCode)' 카테고리의 다른 글

TerraTest 란?  (0) 2022.07.20
Ansible 설치  (0) 2022.07.07
(Terraform) Terraform으로 IaC(Infra As Code) 방식으로 AWS 세팅  (0) 2021.08.31