#!/bin/bash # 1. 패키지 업데이트 및 Apache 설치 dnf update -y dnf install -y httpd systemctl start httpd systemctl enable httpd # 2. EC2 Instance Connect 설정 dnf install -y ec2-instance-connect systemctl enable ec2-instance-connect systemctl start ec2-instance-connect # 3. SSH 서비스 재시작 systemctl restart sshd # 4. 메타데이터 정보 가져오기 (IMDSv2 방식) TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" -s) # 각 변수에 실제 데이터 할당 INSTANCE_ID=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/instance-id) AZ=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/placement/availability-zone) PUBLIC_IP=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/public-ipv4) PRIVATE_IP=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/local-ipv4) # 5. 웹 페이지 생성 (변수 치환을 위해 EOF 사용) cat < /var/www/html/index.html CloudArchitect Lab4-1 - EC2 Web Server

🚀 CloudArchitect Lab4-1 성공!

👤 작성자 정보:

성함: 사용자 성함

실습명: AWS 인프라 구축 Lab4-1

📍 EC2 인스턴스 정보:

인스턴스 ID: $INSTANCE_ID

가용 영역: $AZ

퍼블릭 IP: $PUBLIC_IP

프라이빗 IP: $PRIVATE_IP

✅ Apache 웹 서버가 실제 데이터를 출력하며 실행 중입니다!

이 페이지는 EC2 User Data 스크립트를 통해 자동 생성되었습니다.
생성 일시: $(date)

EOF # 소유권 변경 chown apache:apache /var/www/html/index.html