본문 바로가기
IT Knowledge/IaC

Terraform의 설명

by Seok. 2024. 10. 6.
반응형

HashiCorp Terraform

HashiCorp에서 오픈소스로 개발중인 클라우드 인프라스트럽처 자동화를 지향하는 코드로서의 IaC 도구입니다.

하시코프 설정 언어(HCL, Hashicorp configuration Language) 사용해서 클라우드 리소스를 선언적으로 관리합니다.

 

 

 

현재 클라우드 리소스를 IaC로서 관리하는 도구로서는 거의 업계 표준이라고 있을 정도로 많은 사람들이 사용하고 있습니다.

 

테라폼이 지원하는 플랫폼은 아마존 서비스(AWS), 구글 클라우드 플랫폼(GCP), 마이크로소프트 애저(Azure) 같은 주요 클라우드 서비스를 비롯한 다양한 클라우드 서비스 프로바이더 방식으로 제공하고 있습니다.

따라서, 테라폼만으로 멀티 클라우드의 리소스를 선언하고 코드로 관리하는것이 가능합니다.

 

테라폼 사용자는 HCL 언어로 클라우드 리소스를 정의하고 내용을 테라폼 CLI어플리케이션으로 자신의 클라우드 계정에 실제로 반영할 있습니다.

 

테라폼을 사용하면, 계획(plan) 적용(apply)단계로 진행할 있습니다.

Plan명령어는 클라우드에 적용될 변화 내용을 보여주며,

Apply 명령어는 이를 실제로 클라우드 계정에 적용해줍니다.

 

 

예시)

 

  파일을 저장하고 plan 명령어를 실행하면 HCL 내용과 같이 인스턴스를 생성할 예정이라며 계획을 보여줍니다.

위의 내용을 실제로 적용하고 싶으면 apply 명령어로 적용합니다.

 

적용하고 나면 테라폼으로 관리하고 있는 리소스를 구분하고, 클라우드의 최신 상태와 파일의 내용을 비교하기 위해 tfstate 라는 JSON 파일에 상태를 별도로 관리합니다.

협업을 하려면? 위의 파일을 원격에서 관리해야 합니다.(backend)

 

HCL정의 파일들은 소스코드와 마찬가지로 단순한 텍스트 파일로 작성되기 때문에, GIT 활용하는 방법으로 파일을 관리하고 협업하고 코드를 리뷰하는 것도 가능합니다.

 

 

 

https://www.44bits.io/ko/keyword/terraform

https://www.redhat.com/ko/topics/automation/ansible-vs-terraform

반응형

댓글