MONG 기술블로그

테라폼 설치 및 기본 개념 본문

Terraform

테라폼 설치 및 기본 개념

MJHmong 2022. 3. 14. 22:41

테라폼이란 HashCorp에서 개발한 오픈소스 IaC툴이며, 유저는 HCL이라는 언어를 통해 인프라를 정의하여 코드를 기반으로 인프라를 프로비저닝할 수 있다.

즉 기존에 손으로 한땀한땀 구성하던 인프라 요소들을 코드로써 구축할 수 있게 해주는 멋진 툴이다.

 

이제 대충은 어떤 툴인지 알게됬으니 테라폼을 설치하고 , 테라폼 구성요소에 대한 필수 기본 개념에 대해서 알아보자.

 

 

■ 테라폼 설치 ( MAC OS )

 

다음 URL에 접속하면 테라폼 버전을 선택하여 다운로드할 수 있다.

https://releases.hashicorp.com/terraform/

 

Terraform Versions | HashiCorp Releases

 

releases.hashicorp.com

 

테라폼 버전을 선택하여 링크를 복사한 후 하기 명령어를 참고하여 설치하자.

 

wget https://releases.hashicorp.com/terraform/1.1.3/terraform_1.1.3_darwin_amd64.zip

## 압축 해제시 "terraform" 바이너리파일 한개 생성
unzip terraform_1.1.3_darwin_amd64.zip

## $PATH 설정 ( echo $PATH에 설정된 디렉토리로 terraform bin 파일 이동 )
mv terraform /usr/local/bin/

## PATH 설정된것 확인 & 설치버전 확인
terraform --version

 

Terraform 설치 확인

위와같은 결과값이 출력되면 설치에 성공한것이다.

 

이제 테라폼을 구성하는 기본 명령어 및 구성요소에 대해 알아보자.

 

 

■ 테라폼 필수 기본 개념

 

1. resource

- 실제로 생성할 인프라 자원을 의미한다. ( ec2 / security_group ...  )

 

2. provider

- 인프라를 테라폼 코드로 제공하는 프로바이더를 의미한다. ( ex : aws , azure ... )  

 

https://registry.terraform.io/browse/providers

 

Terraform Registry

 

registry.terraform.io

3. output

- 인프라 프로비저닝 후 생성된 자원에 대한 정보를 output으로 추출할 수 있으며 output으로 추출한 정보는 `remote state`에서 활용이 가능하다.

 

4. backend

- terraform의 상태(tfstate)를 저장할 공간 ( ex : S3 , Github ... )

- backend에 테라폼으로 배포된 최신 상태를 저장하여 다른 사람과의 협업이 가능하다.

 

5. module

- 공통적으로 활용할 수 있는 테라폼 인프라 코드를 한 곳으로 모아서 정의하는 부분.

- 잘 정의된 모듈을 이용하면 변수만 교체하여 동일한 리소스를 손쉽게 생성할 수 있다. ( 재사용성 ) 

 

6. remote state

- remote state를 사용하면 VPC, IAM 등과 같이 여러 자원에서 공용으로 사용되는 서비스를 다른 서비스에서 참조할 수 있다.

- tfstate파일이 저장되어있는 backend정보를 명시할 시 backend의 output 정보를 통해 손쉽게 가져올 수 있다.

- 즉 다른 tfstate에 저장된 variable을 사용하고 싶을 때 remote state를 참조한다.

 

'Terraform' 카테고리의 다른 글

테라폼 고도화 - 1 ( Backend )  (0) 2022.03.21
테라폼 고도화 - 2 ( Variable )  (0) 2022.03.21
테라폼 기본 명령어 실습  (0) 2022.03.16
Comments