본문 바로가기

Compute/EC2

AWS EC2 User data script sample(node.js)

AWS EC2의 User data에서 yarn install/run 명령어 수행이 되지 않음..

 

 초기 EC2 생성 시의 User data 아래와 같이 구성하면 되고,

(https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/user-data.html)

#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
yum install -y httpd mariadb-server
systemctl start httpd
systemctl enable httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

 

이미 생성된 EC2의 User data를 수정하기 위해서는 Instance Settings -> View/Change User Data에서 가능하다.

그러나 쉘 스크립트가 실행되지 않음... 

 

이 경우에는 InstanceHooks(#cloud-boothook / 주석 아님) 기능을 사용하는데 아래 샘플 참고

cloud-boothook을 통해 쉘 스크립트는 실행된다...

 

그러나 node의 npm, yarn 패키지 명령어가 먹히지 않는다. 

아래 도큐먼트를 참고하여 로그 내역을 보면 aws userdata /usr/bin/env: node: no 에러 메시지가 계속 출력....

(https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-linux-log-user-data/)

#cloud-boothook
#!/usr/bin/env bash
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
 PATH="$PATH:/root/.nvm/versions/node/v10.16.0/bin"
 pm2 delete fxxk
 rm -rf /root/fxxk
 git clone https://github.com/fxxk/fxxk.git /root/fxxk
 cd /root/fxxk/
 yarn install
 yarn run start
 mv /root/.env /root/fxxk/.env

 

환경변수 문제.. 직접 path 명령어를 입력해도 안 된다.. 정의하고 명령어를 실행하면 된다... 이유는 잘모르겠음...

#cloud-boothook
#!/bin/bash
wget -S https://fxxk.com/start.sh
chmod +x /root/start.sh
sh /root/start.sh

아무튼 이제 잘 된다... 삽질하지 말고 참고하시라... 아 나만 삽질한건가?

태그