Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
Node.js 컨테이너, 왜 깔끔하게 안 죽을까? (feat. Graceful shutdown) 섬네일

Node.js 컨테이너, 왜 깔끔하게 안 죽을까? (feat. Graceful shutdown)

쏘카 favicon쏘카·DevOps·
KubernetesDockerNestJSGraceful ShutdownNodeJS
2026년 01월 19일0

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

쏘카가 Node.js 컨테이너의 Graceful shutdown 이슈를 분석하고, PID 1 시그널 처리와 이벤트 루프 문제를 해결하기 위해 dumb-init 도입과 앱/인프라 타임아웃 정책을 정리했습니다.

구현 방법

  • dumb-init를 PID 1로 실행해 시그널 전달과 좀비 프로세스 정리를 보장
  • onModuleDestroy에서 Promise.race로 2분 타임아웃 적용 및 종료 시점 로깅
  • Kubernetes terminationGracePeriodSeconds를 180초로 설정하고, 앱 타임아웃을 그에 맞춰 조정
  • app.enableShutdownHooks()를 활성화

주요 결과

  • 시그널 전달 안정화 및 예측 가능한 종료 확보
  • 이벤트 루프의 남은 작업으로 인한 지연 최소화
  • 인프라/앱 타임아웃 조합으로 안전한 종료 정책 확립

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
No Image
67%

Kubernetes 제대로 아는 DevOps 엔지니어를 구분하는 8가지 질문과 답변

인포그랩 favicon인포그랩·2025년 11월 26일
No Image
66%

EKS Bottlerocket AMI에서 DCGM 오류로 GPU 노드 반복 교체 문제 해결기

인프랩 favicon인프랩·2025년 08월 27일
여기어때 CI/CD 개선기 Part 5: Slack으로 완성되는 배포 가시성 섬네일
66%

여기어때 CI/CD 개선기 Part 5: Slack으로 완성되는 배포 가시성

여기어때 favicon여기어때·2025년 09월 10일