본문 바로가기
CS

Terraform(테라폼) 클라우드 알아보기

by Warehaus 2021. 7. 11.

관련 업무를 하고있지는 않지만, 회의나 보고자료에 들리는 용어를 정리 중이다.

근래 Terraform 이나, Ansible 에 대해 언급이 많아지고 있는데,
실제 사용방법이나 경험까지 닿지는 못하더라도 어떤 기술인지 정도만 알아보려 한다.

대부분의 내용은 hashicorp 사이트에서 제공하는 정보를 참조했다.

 

How terraform works


Enterprise

Terraform Enterprise는 오픈소스 기반의 IaC 프로비저닝을 위한 서비스 worflow, 협업과 거버넌스를 제공합니. 또한, Terraform Enterprise는 Infrastructure를 구축하기 위한 workspace와 module 그리고 협업을 위한 다양하고 강력한 구조를 제공한다.

운영자는 코드기반 인프라를 재사용 가능한 모듈로 패키징이 가능하며, 이를 통해 개발자들이 자체적으로 빠르게 privisoning 작업을 할 수 있도록 합니다. 게다가 code 기반 정책과 각종 Logging, Audit 또한 원활하게 지원한다.

Open source 와 Cloud

테라폼은 코드 기반으로 Infrastructure를 표현하는 것을 지원하며, 사람이 쉽게 읽을수 있도록 표현한다. Terraform 은 이런 언어를 변경계획을 제공하며 그 내용이 안전하게 리뷰되로 적용될 수 있도록 합니다. 

그리고 Teraffrom Cloud를 통해 각종 부서와 Governance 업그레이들의 자동화기능이나 협업을 무료로 제공하고 있다.

 

뭐 대충.. 클라우드 인프라를 자동화 하는 도구라고 보면 될 것 같은데

하시코프 설정언어 (HCL)을 기반으로 리소스를 선언하고 관리한다고 보면 될 것 같다.

코드를 통해 리소스를 정의하고, 이를 클라우드에 적용하면 인스턴스가 만들어져서 인프라를 구축하게 되는 것이다.

테라폼은 코드의 상태를 기준으로 클라우드의 실제 상태를 유지하며, 이를 tfstate파일로 관리한다. 여러개의 서버를 만들기 위해서는 리소스를 여러번 선언하면 되고 이를 의존관계에 둘 수도 있다. 

자원을 상호 참조하게 구성하여 의존성을 만듦으로 써, 필요한 자원을 우선적으로 생성하고 마지막에 그 자원을 사용하는 자원을 생성하게 끔 구성이 가능하다.

테라폼을 통해 작성된 코드는 전체적인 클라우드 인프라의 시스템을 대변하기 때문에 하나의 설계도 역할을 하게되며, 이런 코드 상태를 클라우드에서 온전히 유지될 수 있도록 관리할 수 있게 된다.

다양한 public cloud를 지원하기 때문에 확장성이 뛰어나 많이 사용되고 있는 것으로 보이며, 클라우드를 사용하는 개발자 또는 운영자에게 좋은 기술이라고 생각되었다.

자세한 내용은 계속 공부해 나가면서 정리해 볼까 한다.

출처 : https://www.hashicorp.com/products/terraform