HashiCorp/Terraform

[ Terraform ] Terraform 이란

busylee 2024. 11. 19. 10:47
728x90
반응형

테라폼은 해시코프사가 Go 언어로 개발한 오픈소스 도구이다.

운영 체제별로 하나의 바이너리 파일로 컴파일 되어 terraform 이라는 명령으로 실행할 수 있다.

이 바이너리를 사용해 인프라를 배포할 수 있으며 이를 위해 추가로 클라이언트를 설치한다던지 하는 작업이 필요없다.

즉 테라폼은 클라우드 공급자가 제공하는 API 서버를 활용할 뿐 아니라 API 키 인증 메커니즘도 같이 사용한다.

테라폼은 구성 파일에 서버, 데이터베이스, 로드 밸런서, 네트워크 등의 전체 인프라를 정의하고

이를 클라우드 공급자에 대한 API 호출로 변환하는 바이너리이다.


IaC (Infrastructure as Code)
영문 그대로 '코드로서의 인프라'라는 뜻으로 코드로 인프라를 관리하는 것을 의미한다.
Terraform은 대표적인 IaC 도구이다.


Provisioning

어떤 프로세스나 서비스를 실행하기 위한 준비 단계를 프로비저닝이라고 한다.

프로비저닝에는 크게 네트워크나 컴퓨팅 자원을 준비하는 작업과

준비된 컴퓨팅 자원에 사이트 패키지나 애플리케이션 의존성을 준비하는 단계로 나뉘어진다.

명확한 경계는 불분명하지만 테라폼은 전자에 치우쳐있는 도구라고 할 수 있다.


Provider

테라폼과 외부 서비스를 연결해주는 기능을 하는 모듈로

예를 들어 AWS 서비스의 컴퓨팅 자원을 생성하기 위해서는 AWS 프로바이더를 먼저 셋업해야 한다.

프로바이더로는 AWS, Google Cloud Platform,  Microsoft Azure 와 같은 범용 클라우드를 비롯해

Github, Datadog, DNSimple  과 같은 특정 기능을 제공하는 서비스와,

MySQL, MQRabbitMQ, Docker 와 같은 로컬 서비스 등이 있다.


Resource

리소스란 특정 프로바이더가 제공해주는 조작 가능한 대상의 최소 단위를 말한다.

예를 들어 AWS 프로바이더는 aws_instance 리소스 타입을 제공하고,

이 리소스 타입을 사용해 Amazon EC2의 가상 머신 리소스를 선언하고 조작하는 것이 가능하다.

EC2 인스턴스, 시큐리티 그룹, 키 페어 모두 aws 프로바이더가 제공해주는 리소스 타입이다.


HCL ( Hashicorp Configuration Language )

HCL은 테라폼에서 사용하는 설정 언어로 테라폼에서 모든 설정과 리소스 선언은 HCL을 사용해 이루어진다.

테라폼에서 HCL 파일의 확장자는 .tf를 사용한다.

go 언어 기반이다.

 

 

시큐리티 그룹, 키 페어 모두 aws 프로바이더가 제공해주는 리소스 타입이다.


구글 트랜드로 본 대표적인 IaC 도구 트렌드

728x90
반응형