AI Briefing

카카오페이지, Node.js keepAlive 기본값 오류로 인한 BFF 장애 해결기

·2023.09.25 09:00

핵심 내용

카카오페이지 웹 팀은 Node.js HTTP Agent의 keepAlive 기본값(false)으로 인해 발생한 BFF 서버의 CPU 과부하 및 TPS 저하 문제를 true 설정으로 해결했습니다.

1 / 9

자세히 보기

카카오페이지 웹 팀은 유명 웹툰 런칭 시 트래픽 급증으로 BFF 서버의 CPU가 100%에 달하는 장애를 겪었습니다. 초기에는 백엔드 API나 인프라(Kubernetes, Ingress) 문제를 의심했으나, nGrinder 부하 테스트 결과 백엔드 API를 직접 호출할 때보다 BFF를 경유할 때 TPS가 현저히 낮게 측정되었습니다. 미들웨어 최적화나 Pod 개수 조정으로도 해결되지 않던 이 문제의 원인은 Node.js의 http.Agent 기본 설정에 있었습니다. Node.js 19 미만 버전에서는 keepAlive 옵션의 기본값이 false로 설정되어 있어, 요청마다 TCP 연결을 새로 맺고 끊는 오버헤드가 발생했습니다. 팀은 https.Agent의 keepAlive를 true로 명시적으로 설정하여 커넥션 재사용을 활성화했고, 이후 부하 테스트에서 프록시 요청의 TPS가 720에서 3600으로, GraphQL 요청의 TPS가 560에서 1800으로 대폭 향상되었습니다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.