14. 로드 밸런싱: L4 vs L7, 세션 어피니티, 일관 해싱, 헬스체크
문제 14 — 로드 밸런싱: L4 vs L7, 세션 어피니티, 일관 해싱, 헬스체크
게임 서비스의 접속 게이트웨이 앞단에 로드 밸런서(LB)를 두려고 한다. 다음을 설명하라.
-
L4 vs L7 로드 밸런싱의 차이는 무엇인가? 각각 무엇을 보고(어느 계층 정보로) 분배하며, 장단점은? 실시간 게임의 장수명 TCP/UDP 연결에는 어느 쪽이 더 자연스러운가?
-
분배 알고리즘 — 라운드로빈, 가중 라운드로빈, 최소 연결(least connections), IP/해시 기반, 일관 해싱(consistent hashing) 을 비교하라. 일관 해싱이 "서버 추가/제거 시 재배치 최소화"를 어떻게 달성하는지, 단순
hash % N과 무엇이 다른지 설명하라. -
세션 어피니티(sticky session) — 한 클라이언트를 같은 백엔드로 계속 보내야 하는 이유가 게임에서 왜 큰가? 스티키를 구현하는 방법(5-튜플 해시, L7 쿠키, 일관 해싱)과 각자의 한계(서버 증설/축소 시 재분배, 상태 유실)를 논하라.
-
헬스체크와 드레이닝 — 액티브 헬스체크와 패시브(아웃라이어 감지)의 차이, 비정상 노드를 빼는 절차, 그리고 배포 시 기존 연결을 끊지 않고 빼는 드레이닝/graceful 처리는 어떻게 하나?
-
게임 특유의 고려 — 게이트웨이/매치메이커처럼 "상태가 있는(stateful)" 서버를 다룰 때, 단순 stateless HTTP LB와 무엇이 달라지는가? "방(room)·인스턴스는 특정 서버가 소유"하는 구조에서 LB가 아니라 디렉터리/라우팅 테이블 로 보내야 하는 트래픽은 무엇인가? (DSR(Direct Server Return)이 대역폭에 주는 이점도 간단히.)
직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.