될때까지

Node.js로 만든 프로젝트 AWS EC2 배포하기(PM2) 본문

프로젝트/wecode : 기업협업

Node.js로 만든 프로젝트 AWS EC2 배포하기(PM2)

랖니 2022. 10. 19. 23:14
728x90

이번주 화요일부터는 계속 이력서를 작성했다. 가자 취직!! 올해안에 부셔버리자!!

그래서 이제까지 진행했던 프로젝트의 코드들과 리드미를 살펴봤는데, 노드로 진행했던 프로젝트의 Swagger링크가 localhost로 작성된 걸 발견했다.
분명히 마무리 당시에 swagger링크 생성한다고 aws ec2도 생성했는데 왜..지?? pm2를 사용해 서버를 꺼도 돌아가게 작업했는데..
가만 생각해보니까 ec2와 연결해주는 작업은 하나도 하지 않았다지 뭐야 ~.~

AWS에서 다운로드받았던 .pem 파일도 사용하지 않고 있었다ㅋㅋㅋ 😅
그럼 인스턴스에 접속해서 swagger 링크를 배포해보자!

 

1. pem파일 권한 변경 및 EC2 접속

.pem파일 있는 폴더로 이동한 뒤, ls명령어로 .pem파일이 있나 확인한다.

아래 명령어로 .pem파일의 권한을 변경한다.

chmod 400 [pem파일이름.pem]

서버에 접속한다.

ssh -i [pem파일이름.pem] ubuntu@공인ip(ec2 서버의 IP4 퍼블릭IP)

여기서부터 여러 명령어를 입력해서 노드 실행 환경을 구축했는데.. 어제 한 내용인데 기억이 잘나지않는다 ㅠ_ㅠ
나중에 또 배포를 할 일이 생기면, 그때 업데이트 해놓자!!

sudo apt update
sudo apt upgrade
다시 작성하자!!

깃허브에서 레포지토리를 클론한다.

git clone 레포지토리 주소

여기서도 추가 명령어를 입력했는데 기억이 나지 않...😅😅

.env를 만들고 DB접속 정보를 작성해준다.


생략하고 npm start를 입력하니 서버가 돌아가는 걸 확인했다!

 

2. PM2 설치

pm2를 전역으로 설치한다.

npm i pm2 -g

에러를 만났다.
역시 한번에 되는 게 없지

"errno -13
npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules"

폭풍 구글링했고, 해당 포스팅를 참고하여 앞에 sudo를 붙여서 실행했더니 설치 성공!! 감사합니다 🙏

sudo npm i pm2 -g

그다음 PM2로 서버를 실행하면 된다.

pm2 start 파일이름(나는 app.js)

참고로 서버 종료 명령어는 아래와 같다.(둘 중 하나 사용하면 됨)

pm2 stop <id>
pm2 kill

여기까지하면 끝!!

배포 주소로 접속해보면, 사이트가 잘 작동하는 걸 확인할 수 있다!

 

728x90