PM2 완전 정복 7편 — 안티패턴 12선과 운영 체크리스트
sudo pm2 혼용부터 K8s 안에서 PM2로 스케일링까지 현장에서 반복되는 안티패턴 12가지를 증상·원인·해결로 정리하고, 설치부터 무중단·로그·보안까지 운영 셋업 체크리스트와 명령어 치트시트로 시리즈를 마무리한다.
blog92@web:~$ grep -rl "#PM2" posts/
이 태그가 달린 글
sudo pm2 혼용부터 K8s 안에서 PM2로 스케일링까지 현장에서 반복되는 안티패턴 12가지를 증상·원인·해결로 정리하고, 설치부터 무중단·로그·보안까지 운영 셋업 체크리스트와 명령어 치트시트로 시리즈를 마무리한다.
컨테이너에서 PM2를 쓸지 말지의 판단 기준과 pm2-runtime, Nginx 리버스 프록시 구성, 인터넷이 없는 폐쇄망에서의 오프라인 설치 절차, 업그레이드 주의사항과 증상별 트러블슈팅.
npm 스크립트·TypeScript·Next.js·Bun·비 Node 앱을 PM2로 띄우는 방법, pm2 monit과 @pm2/io 커스텀 메트릭 및 외부 관측성 스택과의 역할 분담, Programmatic API, 그리고 pm2 deploy와 CI/CD 중 무엇을 고를지.
PM2 데몬과 PM2_HOME의 구조, fork와 cluster 모드의 차이와 클러스터가 불러오는 상태(State) 문제, restart와 reload의 결정적 차이, wait_ready와 graceful shutdown으로 요청 유실을 0으로 만드는 흐름.
watch 모드를 개발 전용으로 두는 이유, startup/save/resurrect로 만드는 부팅 영속성, 그리고 pm2-logrotate와 OS logrotate로 로그 디스크를 지키는 방법.
CLI 옵션을 ecosystem.config.js로 옮겨 재현 가능하게 만들고, env 블록과 --update-env 함정을 정리하며, 크래시 루프 방지·지수 백오프·메모리 기반 재시작·크론 재시작까지 재시작 정책을 의도적으로 설계한다.
node server.js가 운영에서 부딪히는 여섯 가지 문제, systemd·Docker와의 역할 비교, 설치와 첫 실행, 상태 조회부터 stop/delete/kill 구분까지 필수 명령어와 로그 기초.