CS/네트워크

로드밸런서

leah-only 2025. 2. 20. 17:28

로드밸런서

서버에 가해지는 부하(=로드)를 분산(=밸런싱) 해주는 장치 또는 기술

클라이언트와 분산 네트워크를 구성하는 서버들의 그룹 사이에 위치하여 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리

 

로드밸런서 아키텍처

 

"로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술"


Scale-up & Scale-out

 

Scale-up

서버 자체의 성능을 확장하는 것

ex) CPU가 i3인 컴퓨터를 i7로 업그레이드

Scale-out

기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 것

ex) CPU가 i3인 컴퓨터를 여러 대 추가 구입해 운영

 

Scale-out 방식으로 서버를 증설한다면 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 반드시 필요


 

로드밸런서의 목적

서버 부하 분산

  • 여러 대의 서버에 트래픽을 분산하여 특정 서버에 과부하가 걸리는 것을 방지

서비스 가용성 향상

  • 서버의 장애를 감지하고 장애가 발생한 서버로 트래픽이 전달되지 않도록 차단
  • 이를 통해 서비스 중단 없이 안정적으로 제공 가능

응답 속도 향상

  • 트래픽을 분산해서 각 서버의 부하를 줄임으로써 사용자 요청에 대한 응답 속도 향상

확장성 확보

  • 서버를 쉽게 추가하거나 제거가 가능
  • 트래픽 증가에 따라 서버를 확장하여 서비스의 안정성을 유지 

로드밸런싱 알고리즘

라운드로빈 방식 (Round Robin Method)

  • 각 서버에 순차적으로 요청을 할당하는 단순한 알고리즘 
  • 클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 가짐

 

가중 라운드로빈 방식 (Weight Round Robin Method)

  • 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분
  • 서버의 트래픽 처리 능력이 상이한 경우 사용
  • ex) A 서버 가중치가 5, B 서버 가중치가 2라면 로드밸런서는 RR방식으로 A 서버에 5개 B 서버에 2개의 요청 전달

 

IP 해시 방식 (IP Hash Method)

  • 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
  • 사용자의 IP를 해싱해 로드 분산 → 사용자는 항상 동일한 서버로 연결됨

 

최소 연결 방식 (Least Connection Method)

  • 요청이 들어온 시점에서 가장 연결 수가 작은 서버에 요청을 할당
  • 자주 세션이 길어지거나 서버에 분배된 트래픽들이 일정하지 않은 경우 적합한 방식

 

최소 응답 시간 방식 (Least Response Time Method)

  • 서버의 현재 연결 상태와 응답 시간을 모두 고려하여 트래픽 배분
  • 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 할당

L4 스위치와 L7 스위치 

부하 분산에는 L4 로드밸런서와 L7 로드밸런서가 가장 많이 활용된다.

그 이유는 L4 로드밸런서로부터 포트 정보를 바탕으로 로드를 분산하는 것이 가능하기 때문 

 

한 대의 서버에 각기 다른 포트 번호를 부여하여 다수의 서버 프로그램을 운영하는 경우라면 최소 L4 로드밸런서 이상을 사용해야 한다. 

URL에 따라 트래픽 분산

 

비교

  L4 로드밸런서 L7 로드밸런서
계층 전송 계층 애플리케이션 계층
특징 IP 주소, 포트 번호, TCP/UDP 정보를 바탕으로 트래픽 분산 TCP/UDP, HTTP 헤더, URL, 쿠키 등 정보를 바탕으로 트래픽 분산
장점 > 패킷의 내용을 깊이 분석하지 않기 때문에 트래픽 처리 속도가 빠름

> L7 로드밸런서보다 가격이 저렴
> 상위 계층에서 로드를 분산하기 때문에 정교한 로드밸런싱 가능 (특정 URL에 대한 트래픽을 특정 서버로 분산 등)

> 특정한 패턴을 지닌 바이러스를 감지해 네트워크 보호

> DoS/DDoS 와 같은 비정상적인 트래픽을 필터링하여 네트워크 보안 강화
단점 > 패킷 내용을 살펴볼 수 없기 때문에 세밀한 로드밸런싱이 어려움

> 사용자의 IP가 수시로 바뀌는 경우하면 연속적인 서비스를 제공하기 어려움
> 패킷의 내용을 복호화해야 하기에 더 높은 비용

> 패킷 내용을 분석하는 과정 필요하여 처리 속도 느림

 


로드밸런서와 프록시의 차이점?

로드밸런서는 여러 대의 서버에 트래픽을 분산하여 서버의 부하를 균등하게 분배하는 시스템 또는 장치 

프록시는 클라이언트와 서버 사이에서 중계 역할을 하는 서버 / 클라이언트가 서버에 직접 접근하는 것을 막고 프록시 서버를 통해 요청을 전달하는 역할

특징 로드밸런서 프록시
주요 역할 트래픽 분산 중계 및 보안
위치 서버 앞단 클라이언트 or 서버 앞단
목적 고가용성, 확장성, 성능 향상 보안 강화
> 클라이언트 IP 주소를 숨기고 악성 트래픽을 차단

캐싱
> 자주 사용되는 데이터를 캐시에 저장하여 동일한 요청 발생 시 빠르게 응답해 서버 부하를 줄임
주요 기능 트래픽 분산, 서버 상태 확인, 장애 감지 캐싱, 보안, 접속 제어 

 

프록시 종류

  • 포워드 프록시 : 클라이언트가 서버에 직접 접근하는 것을 막고 프록시 서버를 통해 서버에 접근
  • 리버스 프록시 : 서버 앞에 위치하여 클라이언트의 요청을 처리하고 서버의 IP 주소를 숨김

 

 

참고 사이트 : https://blog.naver.com/gabianow/223750671969

CS 로드맵 : https://github.com/devSquad-study/2023-CS-Study

cs 질문 참고 : https://eunsun-zizone-zzang.tistory.com/35