로드 밸런서(Load Balancer)

도니·2022년 4월 5일
0
post-custom-banner

로드 밸런서 (Load Balancer)?

서비스의 트래픽이 증가 하였을 때 여러 대의 서버에 이를 적절하게 분산처리하여 서비스에 문제 없게 해주는 서비스

로드 밸런서는 왜 필요한가?

Scale-out으로 구성한 환경에서 여러대의 서버를 배치한다고 생각해봅시다. 그러면 한 곳의 서버에만 트래픽이 몰리고 한 서버는 일을 안하는 상황이 발생 할 수 있습니다. 이 때 이러한 상황을 방지해주는 것이 로드밸런서 입니다. 로드 밸런서는 앞서 요약에 써놨듯이 한 서비스에서 몰리는 트래픽을 적절하게 분배해주는 역할을 합니다.

load 로드 밸런서 구조 (예시 : Azure Region Load balancer)
출처 : https://docs.microsoft.com/ko-kr/azure/load-balancer/cross-region-overview

로드 밸런싱 알고리즘

  • 라운드 로빈 방식 (Round Robin Method)
    서비스로 들어온 요청을 서버의 순서대로 돌아가며 분배하는 방법입니다. 요청을 순서대로 분배하기 때문에 서버와 세션이 유지되어야 할 경우 별도의 세션 클러스터링 등 세션 유지 방법이 고려되어야합니다.

  • 해시 방식 (Hash Method)
    요청이 들어오는 IP를 특정 서버로 매핑하여 요청하는 방식입니다. IP를 해싱하여 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장합니다.

  • 최소 연결 방식 (Least Connection Method)
    요청이 들어온 시점에 가장 적은 연결상태를 가지고 있는 서버에 트래픽을 분배합니다. 서버에 분배되는 트래픽이 일정하지 않은경우 적합합니다.

  • 가중 라운드 로빈 방식 (Weighted Round Robin Method)
    각각 서버마다 가중치를 매기고 가중치가 높은 서버에 요청을 배분합니다. 서버마다 처리 능력이 다를경우 사용합니다. 가중치가 높은 서버에 우선적으로 트래픽을 분배하고 높은 서버의 능력에 다 다르게 되면 그 후 다음 서버에 분배하는 방식입니다.

L7, L4 로드 밸런서

보통 로드 밸런서를 사용할 때 L7, L4 로드 밸런서를 많이 사용합니다.

  • L4 로드 밸런서
    L4로드 밸런서의 경우 Transport Level이기 때문에 TCP/UDP 포트 정보를 바탕으로 진행합니다. 그래서 데이터 안을 안보고 패킷 만 보기 때문에 속도가 빠르고 효율이 높은 특징이 있습니다.

  • L7 로드 밸런서
    L7로드 밸런서의 경우는 TCP/UDP외에 HTTP의 URI, FTP의 파일명, 쿠키 정보 등을 바탕으로 진행합니다. 상위 계층에서 나눠지기 때문에 더 섬세하게 라우팅이 가능하고 그렇기 때문에 더 비싼 비용을 지불해야합니다

profile
세상만사에 호기심
post-custom-banner

0개의 댓글