본문 바로가기
CS 및 IT 일반

로드 밸런싱(Load Balancing)이란?

by invelog 2023. 8. 23.

로드 밸런싱(Load Banlancing)

개념

  • 용어의 의미 그대로 Network나 Server의 Load를 분산해주는 기술을 말함
  • 중앙처리 장치나 저장장치와 같이 Resource에게 작업을 나누는 것을 의미함

 

필요성

제공하는 서비스의 고객이 적다면 서버 한대만으로도 큰 문제 없이 운영할 수 있다. 하지만 고객의 수가 많아지고 서비스가 확장되게 되면 기존에 운영중이던 한대의 서버만으로는 정상적으로 운영이 힘들 수 있게 된다. 이와 같이 트래픽이 증가하게 되는 경우 대처 방법은 크게 두가지이다. 

  • Scale-Up : 기존 사용중이던 서버 자체의 성능을 확장하는 방법
  • Scale-Out : 서버를 두 대 이상 증설하여 운영하는 방법. 이 방법의 경우에 증설한 여러대의 서버로 트래픽을 분산해줄 수 있는 Load Balancing이 필요함

 

로드 밸론서(Load Balancer)

개념

  • 로드 밸런싱(Load Balancing) 기술을 제공하는 서비스나 장치
  • 클라이언트 - 트래픽이 집중되는 서버나 네트워크 사이에 위치

 

종류

  • L4 Load Balancing
    • 전송 계층에서 로드를 분산함
    • IP 주소, Port 번호, MAC 주소 등에 따라 트래픽을 나누고 분산처리가 가능함
    • CLB(Connection Load Balancer) 또는 SLB(Session Load Balancer)라고도 함
  • L7 Load Balancing
    • 어플리케이션 계층에서 로드를 분산함
    • OSI 7계층의 프로토콜(HTTP, SMTP, FTP 등)을 바탕으로 분산 처리가 가능

 

로드밸런싱 알고리즘

종류 및 개념

  • 라운드로빈 방식(Round Robin Method)
    • 서버에 들어온 순서대로 배정하는 방식
    • 클라이언트의 요청을 순서대로 분배하기 때문에 운영중인 서버가 동일한 스펙을 가지고 있고 Session이 오래 지속되지 않는 경우에 적합
  • 가중 라운드로빈 방식(Weighted Round Robin Method)
    • 운영중인 각각의 서버에 가중치를 메기고 가중치가 높은 서버에 우선 배분하는 방식
    • 각 서버의 트래픽 처리 능력이 상이한 경우에 적합                                                                                                     예) A 서버가 3, B 서버가 1 이라는 가중치를 가지고 있다면 로드밸런서가 라운드로빈 방식으로 A 서버에 3개, B        서버에 1개의 요청을 전달
  • IP 해시 방식(IP Hash Method)
    • 클라이언트의 IP 주소와 특정 서버를 매핑(Mapping)하여 처리하는 방식
    • 사용자의 IP를 Hashing(임의의 길이의 데이터를 고정된 길이의 데이터로 Mapping)하여 로드를 분배하기 떄문에 사용자는 항상 동일한 서버로 연결됨
  • 최소 연결 방식(Least Connection Method)
    • 요청이 들어온 시점에 가장 적은 연결 상태를 가진 서버로 트래픽을 배분하는 방식
    • Session이 길어지거나 서버에 분배된 트래픽이 일정하지 않은 경우에 적합
  • 최소 응답시간 방식(Least Response Time Method)
    • 서버의 현재 연결상태와 응답시간(Response Time)을 모두 고려하여 트래픽을 배분하는 방식
    • 가장 적은 연결상태와 응답시간을 보이는 서버에 배분

 


 

참고 글

https://velog.io/@yanghl98/OS%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1-Load-Balancing-%EC%A0%95%EC%9D%98-%EC%A2%85%EB%A5%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

'CS 및 IT 일반' 카테고리의 다른 글

쿠버네티스(kubernetes)란?  (0) 2023.08.23
XSS(Cross-Site Scripting)  (0) 2023.08.07
Cookie와 Session  (0) 2023.08.07