Incident Library

IL-0495 HubSpot · 2024-08-27kubernetesnetworking

쿠버네티스에서 도는 내부 로드 밸런서 일부가 헬스 체크 실패로 한꺼번에 내려가고 남은 인스턴스가 연결 폭증으로 무너졌다

HubSpot 의 트래픽은 여러 층의 보안 시스템과 라우팅 시스템을 거쳐 나뉜다. 그 가운데 내부 로드 밸런서는 쿠버네티스에 배포돼 있고 백엔드 서비스로 트래픽을 나눈다. 2024년 8월 27일 로드 밸런서 스택의 경로 처리 갱신이 헬스 체크 응답을 잠시 막았다. 헬스 체크가 제시간에 끝나지 못하자 시스템은 로드 밸런서 인스턴스 일부를 비정상으로 잘못 판단했고, 이 인스턴스들이 동시에 내려가기 시작했다.

남은 인스턴스에는 평소 최대치의 11배인 수백만 연결이 몰렸고, 로드 밸런서는 혼잡으로 무너졌다. 내장된 보호 장치가 넘치는 연결을 거부했지만, 영향을 받은 고객의 응답 시간은 늘고 요청은 실패했다. HubSpot 은 14:20 UTC에 내부에서 문제를 확인했지만 상태 페이지는 14:44 UTC에야 갱신했고, 이 지연 때문에 고객이 혼란을 겪었다.

14:59 UTC에 팀이 남은 인스턴스의 용량을 늘리는 작업에 들어갔고, 15:04 UTC에 새 로드 밸런서 인스턴스가 올라오면서 부하가 줄었다. 15:16 UTC에 시스템이 완전히 복구됐고 트래픽이 평소 수준으로 돌아왔다.

심각도
–
영향 범위
Logging in, reaching content and using HubSpot tools
영향 사용자
some HubSpot customers
지역
–
감지까지
–
복구까지
56m

증상

2024년 8월 27일 14:20 UTC부터 15:16 UTC까지 일부 HubSpot 고객이 계정에 로그인하지 못했고 콘텐츠에 접근하거나 도구를 쓰지 못했다. 모니터링은 플랫폼 전반에서 성능이 크게 떨어진 것을 잡았다.

14:08 UTC에 로드 밸런서의 자동 헬스 체크가 느려지기 시작했다. 14:18 UTC에 장애 인스턴스를 자동으로 찾아내는 기능이 헬스 체크 실패를 보고 로드 밸런서 인스턴스 일부를 다운으로 잘못 표시했고, 이 인스턴스들을 트래픽 처리에서 차례로 빼기 시작했다.

14:19 UTC에 남은 로드 밸런서 인스턴스로 연결이 몰렸다. 연결 수는 수십만에서 수백만으로 치솟아 평소 최대 트래픽의 11배가 됐고, 사용자는 성능 저하와 지연을 겪었다.

14:23 UTC에 자동 시스템이 메모리 과부하를 줄이려고 연결 제한을 걸었다. 로드 밸런서는 넘치는 연결을 거부했고, 그 결과 응답 시간이 늘고 요청이 실패했다.

증상 프로브 실패지연 시간 증가오류율 상승

원인

촉발
트래픽 관리 시스템의 핵심 구성 요소를 평소대로 운영하던 중 로드 밸런서 스택이 경로 처리 설정을 갱신했다. 외부 문서에는 알려져 있었지만 HubSpot 은 몰랐던 문제 때문에 이 갱신이 헬스 체크 응답을 잠시 막았다.

감지

HubSpot 은 14:20 UTC에 내부에서 문제를 확인했다. 14:23 UTC에는 모니터링 시스템이 플랫폼 전반의 성능 저하를 잡았고 장애 대응 팀이 소집됐다.

조치

후속 조치

교훈

핵심 문제는 설정 갱신 중에 헬스 체크가 잠시 막혀 로드 밸런서 여러 대가 비정상으로 잘못 판정된 것이었다. 여러 인스턴스가 동시에 내려가자 남은 인스턴스에 부하가 몰려 연쇄 장애가 됐다. 넘치는 연결을 거부하는 보호 장치가 있었지만 트래픽 급증이 너무 빠르고 커서 감당하지 못했다. 모니터링은 장애를 빨리 잡았지만, HubSpot 은 비정상적인 트래픽 급증을 더 일찍 알아챘다면 연쇄 장애를 막을 수 있었다고 봤다. 상태 페이지 갱신이 늦어 고객에게 오래되거나 불완전한 정보가 갔다.

출처

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 인그레스 컨트롤러, 라이브니스·레디니스 프로브. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.