Terraform 이란?

Nari.·2021년 12월 30일
0

Terraform

목록 보기
1/4

IaC

IaC 란, Infrastructure as Code 를 말한다.
즉, 인프라를 코드로 구축한다는 말이다. AWS, GCP, Azure 등 많은 인프라 리소스들을 IaC 툴을 사용하면 콘솔에서 작업하지 않고 코드만으로도 구축하고 관리할 수 있다.

IaC는 크게 4가지로 나눠진다.

  • Image Build : Packer, Docker
  • Container Orchestration : Kubernetes
  • Configuration Management : Ansible, Puppet, Chef
  • Infrastructure Provisioning : Terraform, AWS CloudFormation

Terraform은 프로비저닝 도구로 서버 자체를 생성한다는 점에서 앤서블과 다르다.



Terraform

테라폼(Terraform)이란 Hashicorp(하시코프)에서 Go언어로 개발한 오픈소스 IaC 도구이다. 생각보다 자주 릴리즈되고 있으며, 대부분의 AWS 리소스를 구축할 수 있다. 최근 사용하면서 안되는 몇가지 사항을 마주했기에 모두 가능하다고 확정짓지 못하겠다🥲

테라폼은 HCL이라고 이야기하는데, HCL이란 HashiCorp Configuration Language로 HCL 형식 또는 json 형식으로 작성할 수 있다.

HCL에 대해 조금 더 이야기를 해보자,
HCL은 사람이 쉽게 읽을 수 있고 컴퓨터가 실행가능한 언어로 선언형 언어이며 튜링완전언어의 특성을 갖는다.

선언형 언어란?
무엇을 할지. 수행할 목표만 명시하고 어떻게 수행할지에 대해서는 정의하지 않는 언어이다. 우리가 흔히 알고 있는 명령형 언어(C, C++, C#, JAVA...)와는 반대되는 개념이다.
선언형 언어의 예로는 HTML, LIPS, XML 등이 있다.



Terraform 장점

어떤 장점이 있어서 테라폼을 사용하는지 찾아봤다.

  1. 기술적 이점
  • 쉽게 적용 가능
  • 모듈화와 셀프 서비스가 가능
  • 일관성있는 인프라 관리
  • 높은 재사용성과 가시성
  • 다양한 프로바이더(테라폼 코어와 연동되는 플러그인)
  • 사용자 에러 및 보안 위협 감소

  1. 비즈니스적 이점
  • 인프라 자동화를 통한 업무 속도 향상
  • 인프라 운영의 자산화와 이력관리 가능
  • 운영비용 절감 (DR 등)
  • 교육비용 및 운용리스크 감소
  • 정책반영을 통한 효율화

0개의 댓글