프론트엔드 개발
aws ec2배포, pm2 활용 본문
local에서 작업하였던 것을 AWS에 연결하여, 배포 서버에서 build하는 방식을 지양하려고 하고 있다
서버의 메모리 부족으로 인해, client가 몰릴때 서버에서 build를 한다면, 터져서 다른 시스템이 다운되는 현상이 발생
pm2란?
- Node.js용 Process manager
pm2 사용이유
- Node.js를 활용한 실제 서비스를 무중단으로 운영하기 위해
- Node.js의 클러스터 모듈을 사용해서 원하는 수 만큼 프로세스를 쉽게 늘리고 줄일 수 있게 하기 위해
pm2 설치 방법
npm install pm2 -g
이외에 pm2를 자세하게 보고 싶다면 공식문서나 이곳을 참고하세요
로컬에서 build 하는 방식
Tools: ftp(fileZila)
Solution
1. sftp 이용, 공인키 인증하는 곳에 pem 파일 등록
2. 접속
호스트명 입력, 사용자명, 포트는 22로 빠른연결
3. local에서 build한 후(master branch에서 yarn build를 실행) build 파일을 해당 디렉토리에 넣는다.
ssh -i redate_renew.pem ec2-user@[도메인]
*pm2 reload [번호]
서버에서 build 하는 방식
Tools: Git Bash(관리자 권한으로 실행), pm2
1. pem 파일을 원하는 directory 에 위치시킨다
2. 해당 directory에 위치한 곳에 ssh 프로토콜을 이용하여 연결한다
- ssh -i [이름].pem ec2-user@[도메인]
3. 해당 directory로 이동
4. local에서 작업한 branch git pull로 받는다.
5. package manager로 build한다. 해당 프로젝트는 yarn build로 진행하였음.
6. build 이후, pm2 reload를 한다
- pm2 reload를 할경우 아래 id값 0을 지정해줘야함 pm2 reload 0
- pm2 list 를 이용하여 status가 online인지 확인할 것.
** Node.js의 프로세스 매니저인 PM2를 서비스에 적용해 Node.js 애플리케이션을 무중단으로 운영하고자 할 때 사용
** 클러스터(Cluster) 모듈을 통해 단일 프로세스를 멀티 프로세스(Worker)로 늘릴 수 있는 방법을 제공
'Front-End > 기타' 카테고리의 다른 글
[m1 homebrew 설치 Warning 해결] /opt/homebrew/bin is not in your PATH (3) | 2021.11.27 |
---|---|
mac에서 Homebrew로 node, yarn 설치하기 (1) | 2021.07.16 |
css - 텍스트 넘침 (3) | 2021.07.01 |
초보 개발자들을 위한 디버깅 방법 (1) | 2021.06.10 |
Bitbucket pipeline을 이용한 AWS S3 배포 (0) | 2021.06.03 |