[Network] 로드밸런싱

한결·2023년 9월 5일
0

CS

목록 보기
27/34

로드밸런싱

필요성

빅테크 기업의 경우 폭발적인 트래픽을 감당할 수 있어야 한다.

다수의 서버를 구축하여 안정적으로 사용자의 요청을 처리할 필요가 있다.

한 서버에 트래픽이 가중되지 않고 안정적인 성능을 유지할 수 있도록 트래픽을 제어 → 로드밸런서


로드 밸런싱 알고리즘

정적 로드 밸런싱

현재 서버 상태와 무관하게 고정된 규칙에 따라 로드 밸런싱

라운드 로빈

  • 클라이언트의 요청을 순서대로 분배하여 처리한다.
  • 동일한 스펙을 가진 여러 대의 서버가 서버 팜에 있을 때 적합하다.
  • 서버와의 연결(세션)이 오래 지속되지 않는 경우에 적합하다.

가중 라운드 로빈

  • 각각의 서버마다 가중치가 있으며, 이 값이 높은 서버에 클라이언트 요청을 우선적으로 배분한다.
  • 서버의 트래픽 처리 능력이 상이한 경우 적합하다.

IP 해시

  • 클라이언트 IP 주소에 대해 해싱을 하여 로드를 분배한다.
  • 사용자가 항상 동일한 서버로 연결된다.

동적 로드 밸런싱

현재 서버의 상태를 검사하여 로드 밸런싱

최소 연결

  • 요청이 들어온 시점 기준 가장 적은 연결 상태를 보이는 서버에 우선적으로 트래픽을 배분한다.
  • 세션이 길어지거나 트래픽 분배가 일정하지 않은 경우 적합하다.

최소 응답 시간

  • 서버의 응답 시간과 연결 상태를 결합하여 최상의 서버를 결정한다.

리소스 기반

  • 각 서버의 컴퓨팅 용량, 메모리 등의 서버 리소스의 사용량을 계산하여 로드 밸런싱

네트워크 계층에 따른 로드 밸런서 분류

상위 계층의 장비는 하위 계층의 장비가 가지고 있는 기능을 모두 가지고 있다.

L4 로드밸런서 (전송계층)

네트워크 계층(IP), 전송계층(TCP, UDP)의 정보를 바탕으로 로드를 분산한다.

IP주소, 포트번호, MAC주소, 전송 프로토콜에 따라 트래픽을 나누는 것이 가능하다.

장점

  • 데이터 안을 들여다 보지 않고 패킷 레벨에서 로드를 분산하기 때문에 속도가 빠르고 효율이 좋다.
  • 데이터를 복호화할 필요가 없어 안전하다.
  • 가격이 저렴하다.

단점

  • 패킷을 들여다볼 수 없어 섬세한 라우팅이 불가능하다.
  • 사용자의 IP가 수시로 바뀐다면 연속적인 서비스 제공이 어렵다.

한 대의 서버에 각기 다른 포트 번호를 부여하여 다수의 서버 프로그램을 운영한다면?

→ 최소 L4 로드밸런서 이상을 사용해야 한다.

L7 로드밸런서 (응용계층)

응용 계층에서 HTTP 헤더, 쿠키 등 사용자의 요청을 기준으로 로드를 분산한다.

장점

  • TCP, UDP는 물론 HTTP 계층의 정보를 바탕으로 섬세한 로드 밸런싱이 가능하다.
  • 캐싱 기능이 있다.
  • 비정상적인 트래픽을 사전에 필터링 할 수 있다.

단점

  • 패킷의 내용을 복호화해야 하기 때문에 더 높은 비용을 지불해야 한다.
  • 클라이언트가 로드밸런서와 인증서를 공유해야 하기 때문에 보안 상의 위험성이 있다.

0개의 댓글