IaC

IaC 도구 비교

jih0ssang 2024. 4. 2. 10:02

 

 

  Terraform Ansible CloudFormation
유형 프로비저닝 구성 관리 프로비저닝
오픈소스 여부 공개 공개 비공개
적용 대상 클라우드 멀티 멀티 AWS 전용
정책 설정 가능 불가능 부분적
구성 방식 Immutable mutable Immutable
라이프사이클 관리 가능 불가능 부분적
온프레미스 지원 부분적 부분적 불가능

 

✔︎ Immutable : 인프라스트럭처의 상태를 변경할 때, 기존 인프라스트럭처를 수정하거나 업데이트하는 것이 아니라 새로운 인프라스트럭처를 생성하여 이전 상태의 인프라스트럭처를 교체하는 방식을 의미한다.

 

  • Ansible
    프로비저닝보다 구성 관리에 더 큰 장점을 가지고 있고, 테라폼으로 자원을 생성(프로비저닝)하고 앤서블로 생성된 자원에 대한 구성 관리하는 방식으로 조합해 사용할 수 있다.
  • CloudFormation
    AWS 환경을 프로비저닝하기 위한 도구로 JSON 또는 YAML로 정의한다.
    AWS 전용 IaC 도구로 다른 클라우드 자원을 프로비저닝할 수 없지만 AWS에서 완벽히 동작한다.
    CloudFormation을 추상화해 파이썬이나 타입스크립트 같은 개발 언어를 사용해 더 코드적으로 자유롭게 프로비저닝이 가능한 AWS CDK도 있다.