목록 보기
마법소녀 이세계 아이돌 웹툰 런칭! BFF 장애 대응기
백엔드

마법소녀 이세계 아이돌 웹툰 런칭! BFF 장애 대응기

두줄요약

웹툰 런칭 트래픽으로 BFF CPU가 포화된 원인을 부하 테스트로 추적했습니다. Node.js agent의 keepAlive를 활성화해 TPS와 CPU 안정성을 개선했습니다.

문제 상황

  • 웹툰 런칭 시 평소 대비 3배 이상 트래픽 유입과 BFF CPU 100% 도달
  • 백엔드 API 단독 대비 BFF의 TPS가 약 10배 낮고 수분간 페이지 미응답 발생

원인 분석

  • 백엔드 응답 지연, ingress 자원 부족, pod 수 부족, 미들웨어와 apollo-server-express 문제를 부하 테스트로 배제
  • Node.js HTTPS agent의 기본 keepAlive: false로 인한 요청마다 TCP 연결 재설정
  • BFF에서 백엔드 API를 호출하는 서버 간 통신의 연결 재사용 부재

해결 방법

  • https.Agent에 keepAlive: true 설정 후 GraphQL과 프록시 요청에 공통 적용
  • 중복 쿠키 파싱 결과의 res.locals 저장과 util.inspect 탐색 깊이 제한
  • pod 수 테스트를 통해 CPU 코어 수에 가까운 pod 수에서 최대 TPS 확인

성능/운영 포인트

  • keepAlive 적용 후 프록시 TPS 720→3,600, GraphQL TPS 560→1,800 개선
  • 평상시 CPU 사용량 안정화
  • Node.js 19 미만 기본 agent의 keepAlive 기본값 점검 필요

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#GraphQL 주제를 이어서 읽기

마법소녀 이세계 아이돌 웹툰 런칭! BFF 장애 대응기

카카오페이지 BFF 장애 원인을 추적한 결과, node.js http agent의 keepAlive 기본값이 문제였습니다. keepAlive를 true로 바꾸고 미들웨어 중복 처리도 줄여 TPS와 CPU 상태를 개선했습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...