본문 바로가기
  • 지요미의 IT성장일기
Terraform

Terraform이란?

by 지요미=P 2024. 2. 22.
728x90

Terraform이란?

HashiCorp Terraform은 버전을 지정하고 재사용하고 공유할 수 있는 사람이 읽을 수 있는 구성파일에서
클라우드 및 온프레미스 리소스를 모두 정의할 수 있는 코드형 인프라 도구이다.
그런 다음 일관된 워크플로를 사용하여 수명 주기 동안 모든 인프라를 프로비저닝하고 관리할 수 있다.

Terraform은 컴퓨팅, 스토리지 및 네트워킹 리소스와 같은 하위 수준 구성 요소는 물론
DNS항목 및 SaaS 기능과 같은 상위 수준 구성 요소를 관리할 수 있다.

 

 

Terraform 작동방법?

API(응용 프로그래밍 인터페이스)를 통해 클라우드 플랫폼 및 기타 서비스에서 리소스를 생성하고 관리한다.
제공자를 통해 Terraform은액세스 가능한 API를 통해 거의 모든 플랫폼 또는 서비스와 함께 작동이 가능하다.

 

Terraform Registry에서는 공개적으로 사용 가능한 모든 공급자(provider)를 찾을 수 있다.

공급자는 얼마나 자주 업데이트가 되느냐가 중요하다.

 

 

 

핵심 테라폼 워크플로 3단계 구성

1. 쓰기 (HCL)

플레이북 같은 스크립트(코드)를 작성해야 한다.

(스크립트를 작성하는 것은 어렵지만 한번 작성해두면 아주 편리함!)

여러 클라우드 공급자 및 서비스에 걸쳐 있을 수 있는 리소스를 정의한다. (*.tf)

보안 그룹 및 로드밸런서가 있는 VPC 네트워크의 가상머신에 애플리케이션을 배포하기 위한 구성을 생성할 수 있다.

 

2. 계획 (plan)

기존 인프라 및 구성을 기반으로 생성, 업데이트 또는 파괴할 인프라를 설명하는 실행 계획을 생성한다.

 

3. 적용 (apply)

승인 시 테라폼은 리소스 종속성을 고려하여 제안된 작업을 올바른 순서로 수행한다.

VPC 속성을 업데이트하고 해당 VPC의 가상 머신 수를 변경하면

테라폼은 가상머신을 확장하기 전에 VPC를 다시 생성한다.

 

 

주요 명령어

*.tf

스크립트 작성


terraform init

terraform 명령어에는 테라폼의 기본 기능이 포함되어 있지만

모든 공급자(AWS, Azure, GCP 등)에 대한 코드가 포함되어 있지 않아서 terraform init 명령어를 실행하여 테라폼에 코드를 스캔하도록 지시하고 어느 공급자인지 확인하고, 필요한 코드를 다운로드하도록 해야함.

기본적으로 공급자 코드는 테라폼의 .terraform 폴더에 플러그인 형태로 다운로드됨

terraform plan

테라폼이 구성 파일을 사용하여 작업을 수행하기 전에 코드의 온전성을 검사할 수 있다.

plan 명령어는 리눅스에서 쓰이는 diff 명령의 결괏값과 유사하다.

+ 가 있는 항목은 추가되고, - 가 있는 항목은 삭제된다는 뜻!

~ 가 있는 항목은 수정!

terraform apply

테라폼의 구성 파일을 실행하려면 terraform apply 명령어를 실행

728x90

'Terraform' 카테고리의 다른 글

Terraform - VPC 생성하기  (0) 2024.02.27
Terraform으로 EKS 생성하기  (0) 2024.02.26
Terraform - 설치하기  (0) 2024.02.22