[NodeJs] AWS EC2에 서버 올리기 (using pm2)
NodeJs를 통해 구현한 서버를 AWS EC2에 올려서 구동하는 방법을 살펴보겠습니다
EC2서버에 서버를 올리기 위하여 Git에 해당 코드를 모두 올려둡니다
1. EC2에 접속하기
cmd 를 켜고 아래와 같이 명령어를 입력해줍니다
ssh -i [pem 경로] ubuntu@[public ip addr]
혹은 아래의 링크를 참고하여 EC2를 실행하여 주시면 됩니다
2. EC2에 구동할 서버 코드 올리기
Git에 올린 NodeJs 코드를 clone합니다
git clone [repository 주소]
이 때, config 등의 보안 문제로 Git에 올리지 않는 코드는 반드시 직접 작성하여 줍니다 !
3. npm 설치 및 시작
sudo apt-get install npm
npm start
서버가 잘 돌아가는지 확인이 되었다면 EC2 접속 콘솔을 끄더라도 서버가 돌아갈 수 있도록
백그라운드에서 서버를 돌려보겠습니다
ctrl + c 를 이용하여 서버를 끈 후, 아래단계를 진행해주세요!
4. pm2 를 이용하여 백그라운드로 서버 돌리기
pm2를 설치하여 줍니다
sudo npm install pm2 -g
만약 'sudo: npm: command not found' 라는 에러가 뜬다면
sudo를 빼고 다음과 같은 명령어를 통해 설치해 줍니다
npm install pm2 -g
설치가 완료되면 pm2를 이용하여 서버 코드를 구동하여 줍니다
pm2 start ./bin/www
이제 EC2 콘솔을 끄더라도 pm2를 통하여 서버가 계속 구동하게 됩니다
다음은 pm2의 중요 명령어들 입니다
- pm2로 돌아가는 프로세스의 name 바꾸기 (rename)
pm2 restart [id] --name [새로운 이름]
- pm2로 돌아가고 있는 프로세스 목록 출력
pm2 list
- pm2 구동 멈추기
pm2 stop [process 이름]
- pm2 로그 확인
pm2 delete id
pm2 delete name
- pm2 로그 확인
pm2 logs id
pm2 logs name
pm2에서 돌고있는 특정 프로세스의 로그를 볼 수 있는 명령어입니다.
- 특정 port를 통해 돌고있는 프로세스 확인
netstat -ntlp | grep :[port num]