Presentation: Enhancing Reliability Using Service-Level Prioritized Load Shedding at Netflix

Presentation: Enhancing Reliability Using Service-Level Prioritized Load Shedding at Netflix

Netflix의 우선순위 기반 로드 셰딩 아키텍처

Netflix는 극단적인 트래픽 급증 상황에서도 서비스 안정성을 유지하기 위해 Envoy 사이드카 프록시에 우선순위 기반 로드 셰딩(Prioritized Load Shedding)을 내장하는 아키텍처를 도입했다. 일반적인 로드 셰딩은 전체 트래픽을 일률적으로 차단하는 방식인데, Netflix는 여기서 한 발 더 나아가 서비스 레벨 단위로 트래픽 우선순위를 구분하는 접근을 택했다.

핵심 메커니즘은 사용자가 직접 유발한 요청(user-initiated request)이 비중요 트래픽의 처리 용량을 선점(steal)할 수 있도록 설계된 점이다. 예를 들어 사용자가 실제로 콘텐츠를 재생하려는 요청은 백그라운드 추천 갱신이나 로깅성 요청보다 높은 우선순위를 갖고, 시스템 과부하 상황에서는 낮은 우선순위 트래픽이 먼저 차단된다. 이를 통해 사용자 경험에 직접 영향을 미치는 요청은 최대한 보호할 수 있다.

Envoy 사이드카 기반의 플랫폼 통합 전략

우선순위 로드 셰딩 로직을 애플리케이션 코드에 직접 구현하지 않고 Envoy 사이드카에 내장한 것은 중요한 설계 결정이다. 서비스 코드를 수정하지 않고도 플랫폼 레벨에서 일관된 정책을 적용할 수 있고, 각 서비스 팀이 별도로 신경 쓸 필요 없이 표준화된 안전망을 제공받는다. Java 백엔드 관점에서 보면, Spring Boot 애플리케이션이 별도의 Circuit Breaker 구현 없이도 사이드카 수준에서 과부하 보호를 받는 구조와 유사하다.

# Envoy 우선순위 기반 로드 셰딩 설정 개념 예시
load_assignment:
  policy:
    overprovisioning_factor: 140
    drop_overloads:
      - category: "low_priority"
        drop_percentage:
          numerator: 80
      - category: "background"
        drop_percentage:
          numerator: 100

설정 자동 생성(config generation) 전략도 주목할 만하다. 수백 개의 마이크로서비스에 일일이 설정을 적용하는 것은 현실적으로 불가능하므로, Netflix는 서비스 메타데이터를 기반으로 Envoy 설정을 자동으로 생성하는 파이프라인을 구축했다. 이는 대규모 MSA 환경에서 운영 복잡도를 통제하는 실질적인 방법이다.

카오스 부하 테스트와 재시도 폭풍 완화

Netflix는 우선순위 로드 셰딩이 실제로 동작하는지 지속적으로 검증하기 위해 카오스 부하 테스트를 자동화했다. 과부하 보호 로직은 평상시에는 동작하지 않기 때문에, 정기적으로 인위적인 과부하를 주입해 시스템이 예상대로 반응하는지 확인하는 과정이 필수적이다. 이는 단순한 단위 테스트나 통합 테스트로는 검증할 수 없는 영역이다.

재시도 폭풍(retry storm) 완화도 중요한 축이다. 서버가 과부하 상태일 때 클라이언트의 재시도가 집중되면 오히려 회복을 방해하는 악순환이 발생한다. Netflix는 이를 플랫폼 차원에서 제어하여, 우선순위가 낮은 요청의 재시도를 선제적으로 제한함으로써 중요 트래픽이 처리될 수 있는 여유를 확보한다.

// 재시도 폭풍 방지를 위한 지수 백오프 + Jitter 패턴 예시
int delay = (int) (Math.pow(2, attempt) * 100 + Math.random() * 100);
Thread.sleep(delay);

정리

  • 트래픽 우선순위 구분은 과부하 상황에서 사용자 경험을 보호하는 핵심 전략이며, 일률적 차단보다 훨씬 정교한 안정성을 제공한다.
  • 사이드카 기반 플랫폼 통합은 서비스 코드 수정 없이 일관된 과부하 보호 정책을 대규모 MSA 환경에 적용하는 현실적인 방법이다.
  • 카오스 부하 테스트 자동화는 평상시에 작동하지 않는 보호 로직의 실효성을 지속적으로 검증하는 유일한 수단이다.
Source
InfoQ
원문 보기 →
← 목록으로 돌아가기