IL-0262 GitHub · 2026-08-17networking
한 데이터센터의 로드 밸런서가 과부하에 걸려 GitHub 의 인증 경로와 이 데이터센터를 지나는 여러 서비스가 오류와 느린 응답을 냈다
사고는 2026년 8월 17일 13시 40분 UTC 에 시작해 7시간 35분 동안 이어졌고, 그중 서비스가 영향을 받은 시간은 약 6시간 44분이었다. 트래픽이 새 최고치를 찍으면서 한 데이터센터의 로드 밸런서가 한계를 넘었다. 서비스 메시 사이드카 하나가 동시 처리 한도에 닿았지만 확장되지 않았고, 요청이 밀리자 로드 밸런서 노드 여러 대가 네트워크 flow 한도를 다 썼다. 그 결과 공용 게이트웨이의 인증 경로가 나빠졌고, 그 데이터센터를 지나는 이슈, 풀 리퀘스트, API, Actions, Copilot, 로그인과 인증, webhooks API 가 오류와 느린 응답을 냈다. 숨어 있던 클라이언트 재시도 버그는 내부 인증 엔드포인트 하나로 가는 트래픽을 크게 부풀려 Copilot Token Service 의 복구를 늦췄다.
자동 모니터링이 오류 증가를 잡아 사고 대응이 시작됐고, 상태 페이지에 영향받은 제품이 degraded 로 표시됐다. 엔지니어들은 원인을 한 데이터센터 로드 밸런서의 네트워크 포화로 짚고, 트래픽 일부를 다른 데이터센터로 옮기며 게이트웨이 재시도를 줄였다. 포화된 노드의 로드 밸런서 프로세스를 멈추고 가장 영향을 많이 받은 내부 엔드포인트로 가는 재시도를 일으키는 요청을 막자 서비스 전반이 곧바로 회복됐다. 남은 인증 오류는 트래픽을 천천히 다시 올리며 잡았고, 정상 지표가 한동안 이어진 뒤 사고를 종료했다. 가장 심할 때 들어온 요청의 56.07% 가 실패하거나 느렸고, 약 29,000 개 조직이 영향을 받았다. 데이터 손실은 없었다.
- 심각도
- –
- 영향 범위
- Issues and pull requests (pages and API) and other services routed through the same datacenter's load balancers: REST and GraphQL APIs, Actions, Copilot, sign-in and authentication, webhooks API; impact for approximately 6 hours 44 minutes; no data lost
- 영향 사용자
- about 29K organizations saw at least one failed or slow request; over roughly 4.8M failed or slow requests in total
- 지역
- one GitHub datacenter
- 감지까지
- –
- 복구까지
- 7h 35m
증상
자동 모니터링이 오류 증가를 잡아 사고 대응이 시작됐다. 이슈와 풀 리퀘스트의 페이지와 API 가 오류를 내거나 느리게 응답했고, 같은 데이터센터의 로드 밸런서를 지나는 다른 서비스들도 오류와 지연을 보였다.
영향은 이슈와 풀 리퀘스트에서 가장 잘 보였다. 같은 데이터센터의 로드 밸런서를 거치는 REST API, GraphQL API, Actions, Copilot, 로그인과 인증, webhooks API 도 오류와 지연을 냈다. 공용 게이트웨이의 인증 경로가 나빠지면서 이 서비스들 전반에서 인증이 느려지거나 실패했다.
가장 심할 때 영향받은 서비스로 들어온 요청의 56.07% 가 엣지에서 실패하거나 느렸다. 사고 동안 약 29,000 개 조직이 실패하거나 느린 요청을 한 번 이상 겪었다. 실패하거나 느린 요청은 모두 약 480만 건이었다. 다시 시도하면 대개 됐지만, 가장 나쁜 구간에는 시도의 상당수가 실패했다.
과부하는 번져 나갔다. 서비스 메시 사이드카가 동시 처리 한도에 닿았는데도 확장되지 않았고, 요청이 밀리자 로드 밸런서 노드 여러 대가 네트워크 flow 한도를 다 썼다. 클라이언트의 재시도 버그가 내부 인증 엔드포인트 하나로 가는 트래픽을 크게 부풀려 Copilot Token Service 의 복구를 늦췄다.
엔지니어들은 장애를 한 데이터센터 로드 밸런서의 네트워크 포화로 좁혔다. 먼저 트래픽 일부를 다른 데이터센터로 옮기고 게이트웨이 재시도를 줄여 부담을 덜려 했다. 포화된 노드의 로드 밸런서 프로세스를 멈추고 재시도를 일으키는 요청을 막자 서비스 전반이 곧바로 회복됐다.
원인
원인 용량 한계
- 촉발
- 트래픽이 새 최고치를 찍으면서 한 데이터센터의 로드 밸런서가 한계를 넘었다. 서비스 메시 사이드카 하나가 동시 처리 한도에 닿았는데도 확장되지 않았다.
감지
자동 모니터링이 오류 증가를 잡아 사고 대응이 시작됐다. 영향받은 제품은 공개 상태 페이지에 degraded 로 표시됐다.
조치
- 트래픽 일부를 다른 데이터센터로 옮기기 시작했다.
- 부담을 덜려고 게이트웨이의 재시도를 줄였다.
- 포화된 노드의 로드 밸런서 프로세스를 멈췄다.
- 재시도를 일으키는 요청 가운데 가장 영향을 많이 받은 내부 엔드포인트로 가는 요청을 막았다. 이 조치와 로드 밸런서 프로세스 중지로 서비스 전반이 곧바로 회복됐다.
- 클라이언트 재시도가 트래픽을 부풀려 인증 오류가 남아 있었다. 엔지니어들은 트래픽을 천천히 다시 올리면서 이 오류를 가라앉혔다.
후속 조치
- 오토스케일링 정책이 호스트 서비스만이 아니라 서비스 메시 사이드카의 동시 처리 수와 용량도 따지도록 고친다.
- 영향받은 서비스 전반에서 서비스 메시의 요청 한도, 동시 처리 한도, 스케일링 한도를 점검한다.
- 일부 구간의 성능 저하가 더 넓은 과부하로 커지지 않도록 게이트웨이와 클라이언트 전반의 재시도와 백오프 한도를 다시 살핀다.
- 사고 동안 인증 트래픽을 부풀린 클라이언트 재시도 동작을 고친다.
- 로드 밸런서 용량 모니터링을 개선한다.
- 리전 페일오버 안전장치를 강화한다.
교훈
GitHub 는 핵심 약점을 두 가지로 봤다. 서비스 메시 사이드카가 확장되지 않은 것과 재시도 동작이다. 클라이언트에 충분한 제한이 없어서 일부 구간의 성능 저하가 더 넓은 과부하로 커지는 것을 막지 못했다.
출처
관련 사례
IL-0455AWS 의 A 서비스가 NAT Gateway 와 IDC L4 를 거쳐 온프레미스 B 서비스를 부를 때 주말마다 5xx 오류가 늘었다Woowa Brothers · 2020같은 원인 · 공통 온프레미스 로드 밸런서
IL-0492AWS 연결 문제로 느려진 연결이 연결 한도를 다 차지해 AWS 밖에 있는 Hosted Graphite 로드 밸런서에 새 연결이 붙지 못했다Hosted Graphite · 2018같은 원인 · 공통 온프레미스 로드 밸런서
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0262
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0262/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.