Terraform 워크플로우: 인프라를 처음부터 자동화하기

발행: (2026년 5월 4일 PM 12:13 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

Terraform 워크플로우: 처음부터 인프라를 자동화하세요 커버 이미지

Hassel Muñoz

실제 문제

DevOps 작업을 할 때, 인프라를 수동으로 관리하는 혼란을 피할 수 없습니다. 문서화되지 않은 변경, 환경 간 일관성 없는 설정, 그리고 작동하던 것이 깨지는 업데이트가 발생합니다. Terraform은 인프라를 버전 관리가 가능하고 재현 가능한 코드로 전환하는 구조화된 워크플로우로 이를 해결합니다.

Terraform 워크플로우란?

Terraform 워크플로우는 인프라를 배포하거나 수정할 때마다 실행하는 표준 라이프사이클입니다. 주요 단계는 init, plan, apply의 세 가지입니다. 이 흐름을 통해 실행하기 전에 어떤 변경이 발생할지 정확히 파악할 수 있어, 프로덕션에서의 놀라움을 방지합니다.

Terraform workflow diagram

실제 작동 방식

Init (초기화)

루트 디렉터리에서 terraform init을 실행합니다. Terraform은 필요한 프로바이더(AWS, Azure, Google Cloud 등)를 다운로드하고 로컬 상태를 구성합니다. 상태는 핵심이며, 클라우드에 실제로 존재하는 리소스를 기록합니다.

Plan (계획)

terraform plan을 사용하면 Terraform이 코드(.tf 파일)와 현재 상태를 비교합니다. 어떤 리소스가 생성, 수정, 삭제될지 정확히 보여줍니다. 이는 프로덕션에 적용하기 전에 검증할 수 있는 순간입니다.

Apply (적용)

변경을 적용하려면 terraform apply를 실행합니다. Terraform은 명시적인 확인을 요구합니다(-auto-approve를 사용하지 않는 한, 프로덕션에서는 권장하지 않음). 그 후 클라우드 인프라를 수정합니다.

실용적인 기술 예제

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

resource "aws_instance" "web_server" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.micro"
  tags = {
    Name = "production-web"
  }
}

실행합니다:

terraform init      # AWS 제공자를 다운로드합니다
terraform plan      # 1개의 EC2 인스턴스를 생성할 것임을 보여줍니다
terraform apply     # 실제로 생성합니다

그 후 instance_typet3.small로 변경하고 다시 plan을 실행하면, 기존 인스턴스를 수정하고 새 인스턴스를 만들지는 않을 것입니다.

Terraform 계획 출력 예시

일상에서의 실제 혜택

  • 재현성: 다른 AWS 계정이나 리전에서 정확히 같은 스택을 재구성하는 것이 간단합니다. initapply만 실행하면 됩니다.
  • 버전 관리: 인프라가 Git에 저장됩니다. 누가 언제 무엇을 왜 변경했는지 감시할 수 있습니다.
  • 오류 방지: 플랜이 병합 전 검토 역할을 합니다. 확인하기 전에 파괴적인 작업을 미리 볼 수 있습니다.
  • 확장성: 5개의 리소스를 수동으로 관리하는 것은 가능하지만, 500개를 코드 없이 관리하는 것은 불가능합니다. Terraform이 이를 간단하게 만들어 줍니다.

Benefits illustration

필수 베스트 프랙티스

  • 상태를 원격에 저장: 팀 프로젝트에서 terraform.tfstate 파일을 로컬에 절대 저장하지 마세요. 버전 관리가 가능한 S3와 DynamoDB 락, 혹은 Terraform Cloud를 사용하세요. 이는 여러 사람이 변경을 적용할 때 충돌을 방지합니다.
  • 모듈 사용: 재사용 가능한 구성을 캡슐화하세요. 각 프로젝트에 VPC 코드를 반복하는 대신 모듈을 만드세요.
  • 항상 plan으로 검증: CI/CD 파이프라인에서 terraform plan을 필수 단계로 만들면 재앙을 예방할 수 있습니다.
  • 파괴적 변경에 대한 민감성: 프로덕션에서는 destroy를 수동으로 검토하세요. Terraform은 파괴할 수 있기 때문에 강력하지만, 그만큼 신중히 다루어야 합니다.

베스트 프랙티스 다이어그램

실용적인 가치

Terraform 워크플로는 인프라 관리가 수동적이고 오류가 발생하기 쉬운 작업에서 감사 가능하고 반복 가능하며 안전한 프로세스로 변환합니다. 이는 단순히 도구가 아니라 현대 DevOps 운영의 기반입니다.

현대 vOps는. init-plan-apply 로 간단히 시작하면 이후에 CI/CD를 통한 실제 자동화의 문을 열 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

SRE 주간 호 #515

sreweekly.com에서 보기 https://sreweekly.com/sre-weekly-issue-515/ 왜 Reliability Metrics가 측정하는 시스템보다 더 빨리 오래되는가 > “Is your dashboard always gr...”