AWS EC2의 User data에서 yarn install/run 명령어 수행이 되지 않음..
초기 EC2 생성 시의 User data 아래와 같이 구성하면 되고
시작 시 Linux 인스턴스에서 명령 실행 - Amazon Elastic Compute Cloud
시작 시 Linux 인스턴스에서 명령 실행 Amazon EC2에서 인스턴스를 시작할 때 사용자 데이터를 인스턴스에 전달하여 일반적인 구성 작업을 자동으로 수행하는 데 사용하도록 할 수 있고, 인스턴스가 시작된 후에 스크립트를 실행할 수도 있습니다. Amazon EC2에 shell 스크립트 및 cloud-init 명령이라는 두 가지 유형의 사용자 데이터를 전달할 수 있습니다. 시작 마법사에 이 데이터를 일반 텍스트, 파일(명령줄 도구를 사용하여 인스턴스를
docs.aws.amazon.com
#!/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 에러 메시지가 계속 출력....
EC2 Linux 사용자 데이터를 로깅한 후 콘솔 로그로 전송
Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스 부트스트랩의 문제를 해결하려고 합니다. 사용자 데이터 호출을 로그한 후 콘솔 로그로 전송하려면 어떻게 해야 합니까? SSH를 통해 인스턴스에 액세스하지 않고도 EC2 인스턴스 부트스트랩의 문제를 해결하려면 모든 출력을 /var/log/user-data.log 및 /dev/console로 리디렉션하는 사용자 데이터 bash 스크립트에 코드를 추가하면 됩니다. 코드가
aws.amazon.com
#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 |