EC2 인스턴스 시작 시 스크립트 자동 실행: User Data 완전 가이드
EC2 인스턴스를 띄울 때마다 Nginx 설치, 환경 변수 설정, 애플리케이션 배포를 수동으로 반복하고 있다면, User Data를 제대로 활용하지 못하고 있는 것이다. 이 글은 EC2 User Data 를 사용해 인스턴스 최초 부팅 시 셸 스크립트를 자동 실행하는 방법을 실제 운영 관점에서 정리한다. TL;DR — EC2 User Data 핵심 요약 항목 내용 실행 시점 인스턴스 최초 부팅 시 1회 (기본값) 실행 주체 root 권한으로 실행됨 스크립트 시작 반드시 #!/bin/bash 또는 #!/bin/sh 포함 로그 위치 /var/log/cloud-init-output.log 콘솔 입력 위치 인스턴스 시작 마법사 → '고급 세부 정보' → 'User Data' CLI 파라미터 --user-data file://userdata.sh 크기 제한 최대 16KB (일반 텍스트 기준) EC2 User Data가 동작하는 방식 User Data는 cloud-init 데몬이 처리한다. 인스턴스가 처음 부팅될 때 cloud-init은 EC2 인스턴스 메타데이터 서비스(IMDS)에서 User Data를 가져와 실행한다. 스크립트가 #!/bin/bash 로 시작하면 셸 스크립트로 처리되고, #cloud-config 로 시작하면 cloud-init 네이티브 YAML 형식으로 처리된다. 중요한 점은 기본적으로 최초 1회만 실행된다는 것이다. 인스턴스를 재시작해도 User Data는 다시 실행되지 않는다. 매 부팅마다 실행하려면 별도 설정이 필요하다. sequenceDiagram participant EC2 as EC2 인스턴스 participant IMDS as 메타데이터 서비스 participant CI as cloud-init ...