-
[ AWS ] ec2내에서 pm2로 multi-node(다중노드) 띄워서 개별 관리 세팅하기Topic/AWS | JENKINS 2023. 4. 29. 11:14반응형
(총 관리를 하게될) ec2 생성
- ec2 접속
- sudo apt-get update
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
- nvm ls (comment not found 뜨면 ssh 껐다가 다시 재접속해보기)
- nvm install v14.16.1
- nvm use v14.16.1
- sudo apt-get install nginx
- sudo service nginx start
- mkdir app
- cd app
- 터미널에서 pem 키가 있는 파일로 이동 ( /project/ssh )
- chmod 400 YOUR_PROJECT.pem
- ssh -i "YOUR_PROJECT.pem" ubuntu@ec2--*--.ap-northeast-2.compute.amazonaws.com
- ec2 접속 후 mkdir app
- touch ecosystem.config.js
- nano ecosystem.config.js 후 아래 코드 입력
module.exports = { apps: [ { name: ‘test1-backend', script: ‘./test1-backend/app.js', exec_mode: 'cluster', wait_ready: true, listen_timeout: 50000, kill_timeout: 5000, merge_logs: true, }, { name: ‘test2-backend', script: ‘./test2-backend/app.js', exec_mode: 'cluster', wait_ready: true, listen_timeout: 50000, kill_timeout: 5000, merge_logs: true, }, ], };
- touch start-server.sh 후 아래 코드 입력
#!/bin/bash echo 'test backend {{' $1 '}} - Starting server.. Please wait...' mode='reload' if [ "${mode}" == $1 ]; then echo ${mode} else mode=$1 echo ${mode} fi case ${mode} in "start") npm install pm2 start ecosystem.config.js echo 'Successful server startup.' ;; "reload") cd test1-backend npm install cd .. cd test2-backend npm install cd .. pm2 reload ecosystem.config.js echo 'Successful server reloaded.' ;; *) echo 0 esac
- ~/app 위치에서 git clone aaa or bbb or ccc backend
- ./start-server.sh reload
- pm2 list로 pm2 status ‘online’인지 확인
- 프로세스 갯수 늘리고 싶으면 -> pm2 scale aaa-backend(프로세스 name) +1 / touch ecosystem.config.js 혹은 touch start-server.sh 파일이 제대로 실행이 되지않는다면 touch하지말고 기존 프로젝트에서 cp 해와서 쓰면 해결된다.
반응형'Topic > AWS | JENKINS' 카테고리의 다른 글
[ AWS ] EC2 인스턴스 t2, t3살펴보기 (0) 2023.06.17 [ AWS ] EC2 시작할 때, pm2를 이용해 스크립트로 서버 배포하기 (0) 2023.05.20 [ AWS ] EC2 vs Lightsale 비교 (무엇이 더 효율적일까?) (0) 2023.04.01 pm2 에러 로그 보는 방법 (0) 2022.12.17 [ JENKINS ] 젠킨스 빌드 후 콘솔 아웃풋에서 pm2: command not found 뜨는 문제 (0) 2022.12.10 - ec2 접속