#!/bin/bash # 로그 기록 시작 (출력과 에러를 모두 /var/log/user-data.log에 기록) exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 echo "--- User Data Script Start ---" # 1. 시스템 업데이트 및 설치 yum update -y yum install -y httpd # 2. 네트워크 및 메타데이터 서비스 안정화 대기 (5초) sleep 5 # 3. IMDSv2 토큰 및 IP 가져오기 (재시도 로직 포함) TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") PRIVATE_IP=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/local-ipv4) if [ -z "$PRIVATE_IP" ]; then PRIVATE_IP="IP를 가져오지 못했습니다" fi # 4. 웹 페이지 생성 cat < /var/www/html/index.html

EC2 Info

Private IP: $PRIVATE_IP

Status: Server is running

EOF # 5. 서비스 시작 및 활성화 systemctl enable httpd systemctl start httpd echo "--- User Data Script Finished ---"