---
title: "Terraform이란"
author: "jungsuk lee"
published_at: "2026-09-30T23:34:44.871Z"
updated_at: "2026-09-30T23:47:48.427Z"
tags: ["iac","terraform","클라우드"]
canonical_url: "https://ariser.io/@writer_5a76322474a3/terraform%EC%9D%B4%EB%9E%80"
ai_assisted: false
---

# Terraform이란

[원문](https://ariser.io/@writer_5a76322474a3/terraform%EC%9D%B4%EB%9E%80)

Terraform은 HasiCorp라는 회사에서 만든 'Infrastructure as a Code' 도구이다.
인프라를 코드를 실행함으로써 만드는 것이고 다양한 클라우드 회사들을 거래처로 끼고 있는 상황에서 FinOps를 감안해서 그때그때 최적의 인프라를 얻는 작업과 그리고 이 작업이 오류없이 매끄럽게, 불편함 없게 굴러가도록 하는 것이 IaC이다.


Terraform은 .tf파일에 3가지를 선언해줘야 한다.

Provider: 어떤 인프라인지
Resourse: 그 Provider에 해당하는 인프라 위에서 무엇을 만들지??
State: 확실한 과거의 수정내역을 담는다. 이 때 인프라 회사들이 사전에 IaC들에게 설정값들마다 '이 변수는 한 번 선언되면 중간에 수정은 불가능해. 상수처럼 동작해야해'를 미리 라벨링을 해둔다. 
기본적으로 중간에 수정이 가능한 값의 IaC를 기반으로 한 수정요청은 'in-place update'로 처리하려고 한다. 바뀐 속성만 API기반으로 바꿔달라 하는 것이다. 그게 State에 기록으로써 남고 만약에 중간에 수정이 불가능한 값을 수정 시도한다면 지우고 새로만드는 작업을 거친다. 이 때 이 in-place update가 불가능하니까 지우고 새로 맞추는 작업은 IaC 코드 자체가 하는게 아니라 인프라딴에서 이뤄진다.

