AWS EC2의 User data에서 yarn install/run 명령어 수행이 되지 않음..
초기 EC2 생성 시의 User data 아래와 같이 구성하면 되고
#!/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 에러 메시지가 계속 출력....
#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
아무튼 이제 잘 된다... 삽질하지 말고 참고하시라... 아 나만 삽질한건가?
'Compute > EC2' 카테고리의 다른 글
Amazon EC2 Linux 2 minikube 설치 (0) | 2021.03.31 |
---|---|
AWS Spot Instance 이해하기 (0) | 2019.12.24 |
AWS EC2 EIP 사용 시 HA 구성 (0) | 2017.04.10 |
Amazon EC2 태그 기준으로 Instance Private IP 확인 CLI (0) | 2016.12.23 |
Amazon EC2 MySQL 5.6 설치 (0) | 2016.10.04 |