IaC(Infrastructure as Code)란
서버, 네트워크, DB 같은 인프라 리소스를 UI 클릭이 아니라 코드(설정 파일)로 정의하고 관리하는 방식입니다. Terraform은 이 코드를 사람이 읽을 수 있는 형태로 작성하고, 버전 관리(Git)와 리뷰가 가능하게 해줍니다.
기본 리소스 정의 예시
resource "aws_instance" "web" {
ami = "ami-0abcdef1234567890"
instance_type = "t3.medium"
tags = {
Name = "web-server"
}
}
기본 워크플로우
terraform init # 프로바이더 초기화
terraform plan # 변경 사항 미리보기
terraform apply # 실제 인프라에 적용
plan 단계에서 실제 적용 전에 무엇이 생성·수정·삭제될지 미리 확인할 수 있어 실수를 줄일 수 있습니다.
왜 IaC가 필요한가
- 같은 환경을 코드 하나로 반복 재현 가능 (개발/스테이징/운영 일관성)
- 변경 이력이 Git 커밋으로 남아 누가 언제 뭘 바꿨는지 추적 가능
- AWS, Azure, GCP, Kubernetes 등 1,000개 이상의 프로바이더를 동일한 문법으로 다룰 수 있음