[실습] 05. split clients로 트래픽 분배 구성
2026. 1. 4. 20:44

05. split_clients로 A/B 테스트(트래픽 분배) 구성하기

nginx diagram
구성도

핵심 정리

1) split_clients는 ‘비율 기반 라우팅’ 도구입니다

  • A/B 테스트, 점진적 배포(카나리), 새 버전 검증 등에 활용됩니다.
  • 중요한 포인트는 무작위 분배가 아니라, 키 기반(해시)으로 그룹이 결정된다는 점입니다.

2) “같은 사용자를 같은 그룹으로” 보내려면

  • 단순히 IP만 키로 쓰면 NAT 환경에서 사용자들이 한 덩어리로 묶일 수 있습니다.
  • 보통은 쿠키(예: 실험 그룹) 또는 사용자 식별 토큰을 키로 삼는 편이 안전합니다.
# 예: 70%는 upstream A, 30%는 upstream B
split_clients "${remote_addr}${http_user_agent}" $variant {
  70%   "A";
  *     "B";
}

map $variant $upstream_name {
  default backend_a;
  "B"    backend_b;
}

location / {
  proxy_pass http://$upstream_name;
}
운영 팁
  • 실험 대상 URL(예: /, /api)만 제한적으로 분기하고, 나머지는 단일 경로로 유지하면 장애 범위를 줄일 수 있습니다.
  • 로그에 $variant를 남겨두면, ‘어느 그룹에서 문제가 났는지’가 바로 보입니다.

참고 링크