피드로 돌아가기
GitHub BlogInfrastructure
원문 읽기
분산 시스템 장애 극복을 통한 서비스 가용성 및 트래픽 제어 최적화
GitHub availability report: April 2026
AI 요약
Context
메시징 시스템 및 Rate Limiting 로직의 결함으로 인한 서비스 전면 중단 및 성능 저하 발생. 대규모 분산 스크래핑 트래픽으로 인한 Load Balancer 포화 상태가 시스템 전반의 연쇄 장애를 유발하는 구조적 한계 노출.
Technical Solution
- Messaging Infrastructure의 점진적 업그레이드 및 Health Check 강화로 Cascading Failure 방지 구조 설계
- Global Rate Limit 설정을 Per-installation Scope로 변경하여 특정 클라이언트의 트래픽 폭증이 전체 사용자에 영향을 주지 않도록 격리
- Faulty Rate Limit Caching 메커니즘을 Feature Flag로 제어하여 장애 발생 시 즉각적인 런타임 롤백 체계 구축
- Load Balancer 티어의 스케일 아웃 및 Connection Handling 최적화를 통한 대규모 동시 연결 처리 능력 향상
- 익명 트래픽 전용 제한 컨트롤을 도입하여 등록 사용자의 서비스 가용성을 우선 확보하는 Traffic Isolation 전략 적용
Impact
- Copilot 세션 대기 시간 54분에서 baseline(15~40초) 수준으로 회복
- 60만 개 이상의 Unique IP에서 유입된 비정상 트래픽(전체 검색 트래픽의 30%) 차단 및 서비스 정상화
- 100%에 달했던 Code Search 실패율 및 Copilot 에러율(최대 97.5%) 제거
Key Takeaway
단일 지점의 Rate Limit 설정 오류가 전체 시스템 마비로 이어지는 Blast Radius를 최소화하기 위해, 자원 할당 및 제한 범위를 세분화하는 Multi-tenant Isolation 설계가 필수적임.
실천 포인트
- 인프라 변경 시 전체 적용 전 단계적 배포(Canary) 및 정밀한 Health Check 프로세스 검토 - Rate Limit 적용 시 Global 범위가 아닌 User/Installation 단위의 Scope 설정 여부 확인 - 장애 복구 시간을 단축하기 위한 Feature Flag 기반의 긴급 제어 스위치 확보 - 비정상적 익명 트래픽 폭증에 대비한 Load Balancer Connection 재사용 및 격리 정책 수립