라우팅과 로드 밸런싱

라우팅과 로드 밸런싱 (Routing & Load Balancing)

LLM 요청을 여러 배포·리전·프로바이더에 분산하고 싶어요. LiteLLM의 라우팅은 로드 밸런싱(트래픽 분산), 라우팅(요청별로 적절한 모델로 보내기), 폴백(프로바이더 장애 시 대체로 자동 전환)을 한 번에 다루는 기능이에요. 고가용성과 신뢰성을 만들 때 꼭 필요한 부분이라 하나씩 살펴볼게요.

출처: 공식문서 Routing & Load Balancing

라우팅 플러그인 (Routing Plugins)

라우팅 플러그인은 v1.92.x부터 쓸 수 있어요. 아직 설계가 진화 중이라, 쓰는 방법이나 다음에 원하는 기능을 만들고 싶다면 GitHub의 autorouter 논의(#32168)에 의견을 남길 수 있어요.

어댑티브 라우터 (Adaptive Router)

Beta 기능이라 테스트용으로만 쓰는 걸 권장해요. 라우팅 전략을 지능적으로 골라주는 라우터예요. 피드백은 Discord나 Slack에서 받고 있어요.

요청 우선순위 (Request Prioritization)

Beta 기능이에요. 요청에 우선순위를 매겨 처리 순서를 조절하는 라우터로, 테스트용으로만 사용해요.

오토 라우팅 (Auto Routing)

복잡성·시맨틱·어댑티브 라우팅을 하나의 라우터로 합친 기능이에요. 각 요청을 휴리스틱, LLM 분류기, 어휘/시맨틱 키워드 규칙, 또는 직접 만든 분류 플러그인으로 분류한 뒤, 고정 모델·무작위 풀·티어별 Thompson 샘플링 풀 중 하나로 라우팅해요.

폴백 (Fallbacks, Provider Failover)

프로바이더 장애 조치를 자동으로 설정하는 기능이에요. num_retries만큼 재시도해도 모델이나 프로바이더가 계속 실패하면, 다른 모델 그룹으로 폴백해서 고가용성과 신뢰성을 확보해요.

# 예시: 기본 폴백 설정 (각 프로바이더별 페이지에서 자세히 다룸)
litellm_settings:
  default_fallbacks: ["claude-opus"]

폴백 관리 엔드포인트 (Fallback Management Endpoints)

일반 설정과 분리해 모델 폴백을 전용 엔드포인트로 관리하는 신규 기능이에요. 폴백 규칙을 별도로 보고 고치고 싶을 때 유용해요.

헬스체크 기반 라우팅 (Health Check Driven Routing)

배포가 실제 에러를 만들기 전에, 트래픽을 불건전한 배포에서 멀리 돌려보내는 라우팅이에요. 설정한 주기로 백그라운드 헬스체크가 돌면서, 실패한 배포는 라우팅 풀에서 미리 제거돼요. 사용자가 이미 실패를 겪은 뒤가 아니라 그 전에 대응할 수 있다는 게 핵심 장점이에요.

general_settings:
  background_health_checks: true
  health_check_interval: 300

핵심 포인트

  • 라우팅을 쓰면 하나의 모델 이름으로 여러 배포를 묶고 트래픽을 분산할 수 있어요.
  • 폴백을 설정하면 일부 프로바이더 장애에도 서비스가 멈추지 않아요.
  • 헬스체크 기반 라우팅은 문제 배포를 사전에 배제해서 사용자 경험을 보호해요.

더 알아보기 (Learn more)