Terraform(테라폼) 소개
Infrastructure as Code(IaC)란?
인프라스트럭처를 코드로 정의하고 관리하는 개념입니다. 클라우드 시대가 도래하면서 인프라 프로비저닝 및 관리를 자동화하는 것이 필수가 되었습니다. IaC를 통해 인프라 리소스를 코드 형태로 버전 관리하고 반복 가능한 방식으로 배포할 수 있습니다. 이렇게 하면 수동 작업을 최소화하고 일관성과 효율성을 높일 수 있습니다.
Terraform이란?
Terraform은 HashiCorp에서 개발한 오픈소스 IaC 도구입니다. 코드 형식으로 작성된 구성 파일을 사용하여 클라우드 및 온프레미스 데이터 센터 리소스를 프로비저닝, 변경, 버전 관리할 수 있습니다. Terraform은 선언적인 구문을 사용하므로 원하는 인프라 상태를 정의하면 Terraform이 필요한 작업을 실행합니다.
Terraform의 주요 특징
특징 | 설명 |
---|---|
클라우드 애그노스틱 | AWS, Azure, GCP 등 다양한 클라우드 공급자와 온프레미스 환경을 지원합니다. |
플랫폼 애그노스틱 | Linux, Windows, macOS 등 다양한 운영체제에서 실행 가능합니다. |
상태 관리 | 인프라 상태를 파일 또는 원격 데이터 저장소에 저장하여 변경 사항을 추적합니다. |
계획 실행 | 실제 인프라에 변경을 가하기 전에 계획을 생성하여 변경 사항을 미리 확인할 수 있습니다. |
리소스 그래프 | 리소스 간 종속성을 자동으로 계산하여 적절한 순서로 생성 또는 변경합니다. |
변수와 모듈 | 변수를 사용하여 구성을 매개변수화하고, 모듈을 통해 코드를 재사용할 수 있습니다. |
Terraform의 작동 방식
Terraform 작동 방식 이미지 출처: https://developer.hashicorp.com/terraform/intro
- 작성(Write): HCL(HashiCorp Configuration Language)이라는 선언적 구성 언어로 원하는 인프라 상태를 정의합니다.
- 계획(Plan): Terraform이 현재 인프라 상태와 구성 파일을 비교하여 변경 사항을 계획합니다.
- 적용(Apply): 계획된 변경 사항을 승인하면 Terraform이 실제 인프라에 변경 사항을 적용합니다.
Terraform 작동 방식 이미지 출처: https://developer.hashicorp.com/terraform/intro
Terraform은 상태 파일을 사용하여 인프라의 현재 상태를 추적하고, 변경 사항을 증분식으로 업데이트합니다.
이렇게 Terraform은 인프라를 코드 형태로 정의하고 관리할 수 있게 해주는 강력한 IaC 도구입니다. IaC 접근 방식을 통해 인프라 프로비저닝과 변경 작업을 자동화하고 일관성을 높일 수 있습니다. 다음 포스팅에서는 Terraform과 Ansible을 비교하며 더 자세히 다루겠습니다.
댓글남기기