피드로 돌아가기
LAB: Terraform EC2 with `user_data`
Dev.toDev.to
Infrastructure

Terraform user_data로 구현하는 EC2 자동 프로비저닝 전략

LAB: Terraform EC2 with `user_data`

Aisalkyn Aidarova2026년 4월 3일3beginner

Context

EC2 인스턴스 생성 후 수동으로 패키지를 설치하는 운영 방식의 비효율성. 인프라 생성과 소프트웨어 설정 단계의 분리로 인한 배포 일관성 결여.

Technical Solution

  • user_data 스크립트를 활용하여 인스턴스 최초 부팅 시 Nginx 설치 및 서비스 활성화를 자동화하는 부트스트래핑 구조
  • templatefile 함수를 통해 쉘 스크립트 내 변수를 동적으로 주입하여 환경별 설정 유연성 확보
  • aws_ami 데이터 소스를 활용한 최신 Amazon Linux 2023 이미지의 동적 식별 및 적용
  • aws_security_group 설정을 통해 HTTP 80 포트의 인바운드 트래픽 허용 및 네트워크 보안 계층 설계
  • user_data_replace_on_change 옵션을 활성화하여 설정 변경 시 인스턴스를 자동으로 재생성하는 불변 인프라(Immutable Infrastructure) 전략 적용

Key Takeaway

인프라 프로비저닝과 애플리케이션 초기 설정을 하나의 코드 흐름으로 통합하여 환경 일관성을 유지하고 휴먼 에러를 원천 차단하는 설계 원칙.


user_data 변경 사항을 즉시 반영하려면 terraform taint를 사용하거나 user_data_replace_on_change 옵션을 true로 설정할 것

원문 읽기