피드로 돌아가기
LAB: Terraform Provisioners (EC2 + remote-exec + file)
Dev.toDev.to
Infrastructure

Terraform file + remote-exec provisioners로 EC2 nginx 자동 설치 파이프라인 구성함

LAB: Terraform Provisioners (EC2 + remote-exec + file)

Aisalkyn Aidarova2026년 4월 2일3beginner

Context

EC2 인스턴스 생성 후 스크립트를 수동으로 실행해야 하는 번거로움이 존재함. 각 인스턴스마다 반복적인 설치 작업을 자동화할 필요성이 있음.

Technical Solution

  • file provisioner: 로컬 scripts/install_nginx.sh 파일을 원격 EC2의 /home/ec2-user/ 경로에 업로드함
  • remote-exec provisioner: 업로드된 스크립트에 실행 권한 부여 후 원격에서 자동 실행함
  • Security Group: SSH(22), HTTP(80) 포트 개방하여 인바운드 접근 허용함
  • aws_ami data source: al2023-ami 동적 조회로 AMI hardcoding을 방지함
  • Provisioners 단점: idempotent하지 않고, declarative 모델을 깨뜨리며, 디버깅이 어려움

Impact

인스턴스 프로비저닝과 스크립트 실행이 하나의 terraform apply 명령으로 자동 완료됨.

Key Takeaway

Provisioners는 last resort 수단으로만 사용해야 하며, user_data, Packer, Ansible 같은 대안을 우선 고려해야 함.


EC2 생성 시 스크립트 실행이 필요한 경우 terraform provisioners 대신 user_data 활용을 우선 검토할 것. 반복적인 설정은 Packer로 AMI를 미리 구성하여 프로비저닝 시간을 단축할 수 있음.

원문 읽기