로드 밸런싱 알고리즘과 Load Balancer의 종류

bagt13·2022년 12월 31일
0

CS

목록 보기
8/14
post-thumbnail

로드 밸런서 (Load Balancer)

로드 밸런서는 특정 서버에 요청이 몰려 부하가 발생하는 것을 방지하기 위해 여러 서버에 트래픽을 분산시키는 장치 또는 소프트웨어이다.

로드 밸런서는 웹 서버의 앞단에 위치하며, 들어오는 요청을 적절한 서버로 라우팅해주고, 웹 서버가 뱉어낸 응답을 클라이언트에 다시 전달한다. 이 과정에서 로드 밸런서는 특정한 로드 밸런싱 알고리즘을 사용하여 요청을 수신해야 하는 웹 서버를 결정한다. 알고리즘은 각 서버의 사용량, 용량 및 전송된 요청 유형과 같은 요소를 고려한다.

로드 밸런서는 웹 서버의 앞단에 위치하기 때문에, 트래픽 분산 뿐만 아니라 보안 역할도 수행할 수 있다.


라우팅 알고리즘 (Routing Algorithm)

앞서 말했듯, 로드 밸런서가 서버로 요청을 넘겨줄 때 라우팅 알고리즘을 사용해 요청을 넘겨줄 서버를 결정한다.

가장 많이 사용되는 라우팅 알고리즘은 라운드 로빈 알고리즘, 최소 연결 방식 등이 있다.


1. 라운드 로빈 (Round Robin)

라운드 로빈 방식에서는 먼저 로드 밸런서가 들어오는 요청을 각 서버에 번갈아가며 보낸다.

서버가 3개 있다고 가정했을 때, 로드 밸런서는 요청 1을 서버 1로, 요청 2를 서버 2로, 요청 3을 서버 3으로 보낸 뒤 순환 루프를 시작한다. 즉, 요청 4는 다시 서버 1에서 처리하는 방식으로 계속 진행된다. 이를 통해 시간이 흐름에 따라 각 서버가 거의 동일한 수의 요청을 수신하도록 한다.

이는 각 서버의 성능이 동일하고, 요청 처리 시간이 짧은 애플리케이션의 경우에 균등하게 분산할 수 있다는 장점이 있다.


2. 최소 연결 방법

최소 연결 방법에서는 로드 밸런서가 각 서버의 현재 연결 수를 추적한다.

요청이 들어오면 활성 연결이 가장 적은 서버, 즉 현재 연결 수가 가장 적은 서버로 요청을 보낸다. 동적인 분산 알고리즘으로 각 서버에 대한 현재 연결 수를 동적으로 카운트할 수 있고, 이를 통해 서버 부하를 분산시킬 수 있다.


로드 밸런서의 종류

로드 밸런서는 어떤 것을 기준으로 요청을 분산시키느냐에 따라 네 가지 종류로 나뉠 수 있다.


종류로드밸런싱 기준
L2데이터 전송 계층에서 Mac 주소를 바탕으로 로드 밸런싱
L3네트워크 계층에서 IP 주소를 바탕으로 로드 밸런싱
L4전송 계층에서 동작, IP주소와 Port를 바탕으로 로드 밸런싱
L7응용 계층에서 동작, 클라이언트의 요청을 바탕으로 로드 밸런싱. ex) endpoint


이 중 L4와 L7이 대표적인데, 핵심 내용을 정리하면 다음과 같다.

L4 로드 밸런서

  • TCP, UDP 포트 정보를 바탕으로 한다.

  • 장점

    • 데이터를 확인하지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 높고, 저렴하다

L7 로드 밸런서

ALB(애플리케이션 로드 밸런서)라고 불린다.

  • 장점

    • HTTP 헤더, 쿠키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능하다.
    • 더 섬세한 라우팅이 가능하고, 비정상적인 트래픽을 필터링 할 수 있다.
  • 단점

    • 패킷의 내용을 복호화 해야하기 때문에 더 많은 비용이 든다.

따라서 L7 로드 밸런서는 요청 내용에 따라 들어오는 트래픽을 분배하며, 세션 상태를 유지하거나 컨텐츠 기반 라우팅이 필요한 복잡한 애플리케이션에 유용할 수 있다. 또한 SSL/TLS Termination과 같은 고급 기능을 제공 할 수도 있다.


SSL Termination이란?

SSL로 암호화된 데이터 트래픽이 해독되는 프로세스로서, Load Balancer가 SSL을 Termination 하게 되면 웹 서버에 부하를 줄여줄 수 있다는 장점이 있다.

참고 : https://sepiros.tistory.com/50


📃 Reference

profile
주니어 백엔드 개발자입니다😄

0개의 댓글