서버에서 노드 프로그램 서버 구성 메뉴얼
- Nest
- Development
- Category
- Server
- Hit
- 355
- Star
- 0
git 설치
sudo yum update -y
sudo yum upgrade -y
sudo yum install git -y
nvm 설치
nvm
은 node 프로그램을 관리합니다.
모든 파일들은 ~/.nvm
영역에 설치되기 때문에 root 권한을 사용할 필요가 없는 특징을 가지고 있습니다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
설치하고나서 nvm
명령어를 실행하면 실행이 안되니 exit
로 나갔다가 다시 접속하면 실행 가능합니다.
node 14 설치
nvm install 14
# 만약 다른 버전이 설치되어있다면..
nvm use 14
pm2 설치
pm2는 노드 서버들을 관리하는 툴입니다.
다음과 같이 설치할 수 있습니다.
npm install pm2 -g
pm2에 노드 서버들을 등록을 끝냈으면 저장을 해둡니다. pm2 저장을 하면 서버가 껏다 켜졌을때 그 생태로 복구됩니다.
# pm2 상태 저장하기. 서버가 껏다 켜졌을때 그 생태로 복구됩니다.
pm2 save
# node 서버목록
pm2 list
# pm2 서버 시작하기
pm2 start {NUM|NAME}
# pm2 서버 재시작
pm2 restart {NUM|NAME}
# pm2 서버 정지
pm2 stop {NUM|NAME}
# pm2 서버 전부 열거나 닫거나 재시작
pm2 start all
pm2 stop all
pm2 restart all
# pm2 실시간 모니터링
pm2 monit
pm2 의 로그파일은 ~/.pm2/logs
에 저장됩니다.
pablo-draw 프로젝트 클론 및 빌드
먼저 deploy key 를 만들어 인증없이 클론받고 업데이트 할 수 있도록 환경을 만들어야 합니다.
cd ~/.ssh
ssh-keygen -t rsa
RSA key 생성이 되었으면 cat id_rsa.pub
를 입력하여 출력된 내용을 복사하고 github 프로젝트의 Deploy Keys
메뉴에서 항목을 추가합니다.
다음과 같이 github 프로젝트를 복제 합니다. (ssh 형식의 주소)
git clone {REPO_SSH_URL}
만약 권한 문제로 복제가 잘 안된다면 다음과 같이 ~/.ssh/config
파일을 만들어 내용을 입력합니다.
Host github.com
Hostname ssh.github.com
Port 443
IdentityFIle ~/.ssh/id_rsa
프로젝트 클론이 끝났으면 패키지 인스톨을 하고 셋업합니다.
cd pablo-draw
npm install
npm run setup
여기까지 완료되었으면 nano .env
를 실행하여 .env
파일을 편집해서 환경에 맞는 설정으로 고칩니다.
그리고 다음 명령으로 프로젝트를 빌드합니다.
npm run build
빌드까지 완료했으면 npm run start
를 실행하여 문제없이 서버가 열리는지 확인해보고 문제없으면 다음과 같이 pm2에 서버를 등록합니다. (프로젝트 경로에서 실행해줘야 합니다!)
pm2 start -l 0 npm --name "pablo-draw" --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' -- start
pm2 save
서버를 등록했으면 pm2 list
명령으로 상태가 어떤지 확인해봅니다.
pablo-draw 프로젝트 컨트롤 쉘 스크립트
명령어 적기 귀찮기 때문에 쉘 스크립트 만들어서
# pablo-draw.sh
cd /home/ec2-user/pablo-draw
case "$1" in
pm2)
pm2 start -l 0 npm --name "pablo-draw" --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' -- start
;;
upgrade)
pm2 stop pablo-draw
git pull
npm run build
pm2 start pablo-draw
;;
*)
echo "Usage: $NAME {pm2|upgrade}" >&2
exit 3
;;
esac
사용하기
# pm2에 노드서버 추가하기
./pablo-draw.sh pm2
# 프로젝트 업그레이드
./pablo-draw.sh upgrade