IT/Public Cloud

AWS EC2 User Data 사용하기 (feat 로그, 내용확인)

엘티엘 2022. 3. 8. 20:45

EC2 User Data 사용방법에 대해서 간단히 정리해보자

EC2 User Data란?

EC2가 생성되면서 실행되는 일종의 script 이다. 예를들어 5대의 EC2를 생성해서 패키지를 설치해야 한다고 가정해보자. 5대를 생성 -> 각각 ssh 접속 -> 스크립트 실행할 수도 있겠지만 매우 번거로운 작업이다. 이럴경우 User Data를 활용하면 EC2가 생성되고 최초 부팅이될때 User Data에 입력된 스크립트를 실행해준다.

사용방법

사용방법은 간단하다. EC2를 생성할때 아래와 같이 User Data 에 관련 스크립트를 작성하면 된다. linux 기준으로 제일 윗줄의 #!/bin/bash 를 입력하지 않으면 스크립트가 동작하지 않으니 주의하자.

User Data 로그 확인하기

제대로 실행됬는지 확인하고 싶을떈 어떻게 해야 할까? AWS에서 별도 디버깅이나 로그 확인방법을 지원하지 않는다. 따라서 실행 스크립트내에 로그를 남기는 동작을 추가해야 한다. 아래 스크립트의 두번째 줄이다. /var/log/user-data.log에 출력 로그를 저장한다.

#!/bin/bash -xe
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
yum update -y
yum install -y httpd.x86_64
systemctl start httpd.service
systemctl enable httpd.service
echo "Hello World from $(hostname -f)" > /var/www/html/index.html

User Data 내용 확인하기

이미 생성된 EC2의 User Data를 확인하고 싶을때는 어떻게 해야 할까? (EC2의 detail 정보를 봐도 User Data 항목은 없다.) 이때는 아래처럼 EC2 선택 -> Actions -> Image and templates -> Create template from instance 를 클릭한다. 그리고 맨 아랫항목을 보면 EC2 생성시 입력한 User Data 내용을 확인할 수 있다.

반응형