8/5-6

Terraform

HashiCorp 사의 IaC 도구

클라우드, 물리 시스템, VM, 네트워크 장비, 컨테이너 등 인프라 자동화된 배포, 변경 및 관리를 제공한다.

HCL이라는 구성파일로 작성하고 인프라, 플랫폼 및 SW를 관리할 수 있다. 구성 파일은 단일 애플리케이션 또는 인프라 또는 인프라 전체를 실행하는데 필요한 구성 요소를 선언한다.

관리자가 원하는 상태에 도달하기 위해 수행할 작업을 선언하고, 실행 계획을 생성한 다음 이를 실행하여 정의된 인프라를 구성한다. 기존의 구성이 변경되어야 한다면 변경된 사항을 확인하고 적용할 수 있는 증분 실행 계획을 적용한다.

Provider의 API와 상호작용하며 리소스를 배포 및 관리한다. Provider는 일반적으로 IaaS(AWS, GCP, Azure, OCI, OpenStack...), PaaS(Heroku, Kubernetes, Docker..), SaaS(GitHub, Terraform Cloud, DNSimple, Cloudflare..)서비스를 자동화 배포할 수 있다.


주요 기능

  1. 코드형 인프라

    Terraform은 HCL 구성 파일로 정의하며, 이를 통해 인프라의 구성을 코드하고 버전 관리를 통해 관리할 수 있다. 또한 이런 코드를 재사용하고 공유할 수 있다.

  2. 실행 계획

    Terraform은 구성 파일에 정의된 리소스를 실제 배포하기 전에 계획 단계를 통해 수행할 작업을 미리 확인할 수 있다.

  3. 리소스 종속성

    Terraform은 구성 차일에 정의된 모든 리소스의 종속성을 확인하고 비 종속적인 리소스의 생성을 병렬화한다.

  4. 변경 자동화

    리소스의 종속성을 통해 리소스가 어떤 순서로 변경되는지 정확히 알 수 있으며, 이는 사람이 직접 구성함으로써 발생하는 오류를 방지한다.


구성 파일