IaC 도구 Terraform이란?

변재한·2023년 3월 11일
0

현재 연합동아리 CloudClub에서 Terraform & Ansible 스터디를 하고 있다.
매주 Terraform과 Ansible을 공부한 내용을 기록하고자 한다!

IaC란?

제목에서 언급했듯, Terraform은 IaC 도구이다.
여기서 IaC란 Infrastructure as Code를 의미하고 이는 코드로 인프라를 관리한다는 것을 뜻한다.

인프라를 코드로 관리하게 되면 다음과 같은 장점이 생긴다.
1. 인프라를 코드로 정의하여 생산성과 투명성을 높임.
2. 정의한 코드를 공유하여 효율적으로 협업 가능
3. 자동화
4. 오류감소

Terraform이란 ?

Terraform 소개

  1. Hashicorp에서 오픈소스로 개발 중인 클라우드의 인프라 구성을 자동화하는 IaC 도구이다.
  2. HCL이라는 언어를 사용하여 인프라 리소스를 선언한다.
  3. Openstack의 Heat, AWS의 Cloudformation처럼 특정 벤더에 종속된 서비스들과 달리 Provider 방식으로 다양한 클라우드 서비스에 Terraform으로 적용할 수 있다.

Terraform Workflow

Write

인프라 리소스에 대한 정의, 구성에 대한 설정을 코드 파일로 정의한다.
참고: Terraform 관련 코드 파일의 확장자는 tf이다
ex) main.tf, provider.tf 등

Plan

Terraform은 기존 인프라 및 구성을 기반으로 생성, 업데이트 또는 Destoy할 인프라를 설명하는 실행 계획을 생성한다.
현재 인프라 상태에서 원하는 인프라 상태의 예상되는 변경점을 미리 확인할 수 있는 단계이다.

Apply

해당 단계에서 Terraform은 모든 리소스 종속성을 고려하여 올바른 순서로 제안된 인프라 구성을 수행한다
리소스의 선후관계를 명시하지 않아도 알아서 순차적, 병렬적으로 실행된다.

Terraform 장점

  • 대시보드, 콘솔에 접근할 필요없이 인프라 운영 및 관리에서 모두 자동화가 가능하다.
  • 사람이 수동적으로 작업하는 것보다 빠르게 배포가 가능하다.(반복적인 리소스 생성 시)
  • Workflow 중 Plan 단계, 유효성 검증을 통해 문제가 발생하는 것을 어느정도 예방이 가능하다.

Terraform 단점

  • Terraform에서 사용하는 HCL언어의 문법에 대한 러닝커브가 존재한다.
  • 기존의 Cloud Platform에 구성된 인프라의 설정을 Terraform 코드로 Migration하기 어렵다.

마치는 글

앞선 Terraform의 단점에도 불구하고 장점이 가져다 주는 효용성이 크기 때문에, 현재 Devops 엔지니어나 Cloud 관련 직무에서 Terraform 사용 경험을 많이 요구하는 것 같다.
또한, 지금까지 살펴본 바에 따르면 아주 매력적으로 다가오기 때문에.. 스터디 기간동안 한 번 제대로 파봐야겠다...

🤔참고한 자료
profile
Infra and Devops 엔지니어가 되고 싶어용

0개의 댓글