Terraform — IaC

Terraform (IaC — Infrastructure as Code)

서버·네트워크·DB 같은 인프라를 콘솔에서 클릭으로 만들다 보면, "누가 언제 무엇을 바꿨는지"가 기록으로 남지 않아요. Terraform은 이 인프라 전체를 HCL(HashiCorp Configuration Language) 코드로 선언해 관리하는 IaC(Infrastructure as Code) 도구입니다. 코드로 정의하면 사람이 기억하지 않아도 상태가 항상 코드에 남고, 같은 정의로 어디든 재현할 수 있어요.

Terraform은 클라우드 공급자(AWS, GCP, Azure)뿐 아니라 우리가 쓰는 Kubernetes, Docker 같은 도구들도 프로바이더라는 플러그인을 통해 같은 방식으로 다룹니다. "리소스를 코드로 만들고, 실제 상태와 비교해 맞추고, 마지막엔 정리한다"는 세 단계가 Terraform의 전부예요. 이 아래 문서들이 그 각 단계를 하나씩 설명해 줍니다.

핵심 개념

리소스(Resource). Terraform이 만들고 관리하는 인프라의 최소 단위예요. 가상 머신 하나, 보안 그룹 하나, DNS 레코드 하나가 각각 리소스가 됩니다.

프로바이더(Provider). AWS, Kubernetes처럼 외부 시스템에 연결해 리소스를 실제로 만들어 주는 플러그인이에요. 리소스 블록은 항상 어떤 프로바이더로부터 생겨납니다.

모듈(Module). 여러 리소스를 하나로 묶어 재사용 가능하게 만든 컨테이너예요. 같은 구성을 여러 환경에서 반복할 때 씁니다.

상태(State). Terraform이 "지금 실제로 어떤 리소스가 있는지"를 기록하는 파일이에요. 이 기록과 코드를 비교해 무엇을 만들고, 바꾸고, 지울지 계산합니다.

하위 문서

더 알아보기