PM2 무중단배포
인스턴스는 내가 중단하기까지 꺼지지 않지만 터미널은 닫으면 종료되니 때문에 무중단 서비스가 되지않는다.
터미널을 계속 켜놔도 결국은 일정시간이 지나면 종료가 됨
그렇기 때문에 해당 터미널과 서버 실행 환경을 분리가 필요하다
그래야 터미널을 닫아도 서버가 계속 돌아가기 때문!
이 방식은 도커로 무중단 서비스를 운영해도 비슷하게 작동한다.
하지만 지금 진행하는 프로젝트는 프론트 서버도 1개고 대규모 인프라로 자동으로 설정하는 부분도 아니기때문에
간단하게 pm2로 진행!
하지만 도커도 언젠간 제대로!! 해보고 싶다
그럼 이제 막 ec2 인스턴스를 만들었으니
node를 우분투에 설치해보겠습니다.
우선 패키지 리스트를 최신화 하기 위해 apt update를 진행
sudo apt-get update

업데이트가 됐으면 노드를 설치해줍니다
sudo apt install nodejs npm -y

설치 완!
이제 npm으로 pm2 설치가 가능해짐!!
sudo npm install -g pm2

여기까지 왔다면 pm2 설정완!!
여기에 이제 실제 서버를 올려봅시다
최초 1회는 수동으로 배포를 진행후에 배포 자동화 진행예정
github clone을 위해서 ec2에서 ssh키를 생성합니다
ssh-keygen -t ed25519
passphrase는 키를 사용할 때 사용되는 비밀번호의 개념인데 보안을 강화하고 싶은 경우에 사용하면됩니다.
저는 없이 진행했습니다.

키 생성완료!!
키 파일을 확인 후 깃헙에 등록해주면 끝!
https://github.com/settings/keys
에서 등록해주면 됩니다~
그리고 ssh주소로 클론을 해주면 프로젝트까지 등록완료!!!
현재 프로젝트는 yarn을 패키지 매니저로 사용하는데 리눅스에 이미 기존 yarn이 깔려있어 이걸 지우고
다시 설치해준다
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt-get install yarn -y
yarn 버전 확인후 패키지를 설치하고 빌드를 진행하려고 했으나..!
혹시나 했는데.. 램이 1기가인 프리티어라 빌드가 안됨 ㅜㅜ 당연함..
가장 좋은건
깃헙액션에서 빌드를 해야되겠지만 배포 상황을 빨리 봐야하므로
일단은 메모리 swap을 합시다..
swap을 했지만 빌드할때 서버가 멈출 수 있습니다....
Blue-Green 방식으로 진행을 하거나 깃헙액션에서 배포하는 방식이 사실상 제일 좋은 것 같다.
메모리 swap 참고 링크 : https://repost.aws/ko/knowledge-center/ec2-memory-swap-file
이제 빌드를 했으면 해당 파일을 pm2에 올려줍니다1!!
pm2 start npm --name 프로젝트이름 -- run start
이제 배포 1차 완성!!!!!
https 붙이면 진짜진짜 끝!!!
일단은 그전에 Blue-Green 방식으로 nginx설정 변경부터 해야될 듯 싶다.
2025.06.02 - [Side project] - [AWS] NEXT.js 배포를 위한 ec2를 만들고 연결해보자
'Side project' 카테고리의 다른 글
| [AWS] NEXT.js 배포를 위한 ec2를 만들고 연결해보자 (0) | 2025.06.02 |
|---|---|
| 서버에 도메인 연결해보자 - a레코드 설정 (0) | 2025.05.31 |
| 포트폴리오03 - styled components는 버린다. (2) | 2023.12.02 |
| 포트폴리오02 - 깔끔한 UI는 역시 어렵다 (2) | 2022.12.26 |
| React - UI library 선택하기(material design / ant design / bootstrap) (0) | 2022.12.07 |