본문 바로가기

기초이론/네트워크

로드 밸런싱(Load Balancing)

로드밸런싱(Load Balancing)

  • 컴퓨터 네트워크 기술의 일종으로 둘 혹은 세 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.
  • 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술이다.
  • 두 개 이상의 컴퓨터 자원에 작업을 분배하는 것을 '로드밸런싱(Load Balancing)' , 로드밸런싱 기술을 제공하는 서비스 또는 장치를 '로드밸런서(Load Balancer)' 라고 한다.

로드밸런서


  • 증가한 트래픽에 대처하기 위해 사용
    • 증가한 트래픽에 대처하는 방법은 크게 두 가지로 나눌 수 있다.
      1. Scale-up
        • 서버 자체의 성능을 확장하는 것을 의미한다.
      2. Scale-out
        • 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 것을 말한다.
  • 로드 밸런싱은 OSI 7계층을 기준으로 부하를 분산하는 방식에 따라 종류가 나뉘며 그 종류는 다음과 같다.
    1. L2 로드밸런싱
      • Data Link 계층을 사용, Mac 주소 기반 부하 분산
    2. L3 로드밸런싱
      • NewWork 계층을 사용, IP 주소 기반 부하 분산
    3. L4 로드밸런싱
      • TransPort 계층을 사용, Port 기반 부하 분산
      • TCP, UDP
    4. L7 로드밸런싱
      • Application 계층을 사용, URL 기반 부하 분산
      • HTTP, HTTPS
  • L4 로드밸런싱과 L7 로드밸런싱이 주로 사용된다.

 

L4 로드밸런싱

  • 네트워크 계층(IP, IPX)이나 트랜스포트 계층(TCP, UDP)의 정보를 바탕으로 트래픽을 분배한다.
  • IP 주소, 포트번호, MAC 주소, 전송 프로토콜에 따라 트래픽을 나눌 수 있다.

 

L7 로드밸런싱

  • 애플리케이션 계층(HTTP, FTP, SMTP)에서 트래픽을 분배한다.
  • HTTP 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 하여 특정 서버에 트래픽을 분배하는 것이 가능하다.
  • 즉, 패킷의 내용을 확인하고 그 내용에 따라 트래픽을 특정 서버에 분배하는 것이 가능하다.
  • 특정한 패턴을 지닌 바이러스를 감지하여 네트워크를 보호할 수 있다.
  • DoS / DDoS와 같은 비정상적인 트래픽을 필터링할 수 있어 네트워크 보안 분야에서도 활용된다.

 

L4 로드밸런싱과 L7 로드밸런싱의 차이점

  L4 로드밸런서 L7 로드밸런서
네트워크 계층 전송 계층
(Transport Layer)
응용계층
(Appliction Layer)
특징 TCP / UDP 기반 TCP / UDP 를 포함하여 HTTP(URL), FTP, 쿠키 정보 등을 바탕으로 한다.
장점 - 패킷 레벨에서만 분배하기 때문에 속도가 빠르고 효율이 높다.
- 데이터의 내용을 복호화할 필요가 없어 안전하다.
- L7 로드밸런서보다 저렴하다.
- 상위 계층에서 트래픽을 분배하기에 더욱 섬세한 라우팅이 가능하다.
- 캐싱 기능을 제공한다.
비정상적인 트래픽을 사전에 필터링 할 수 있다.
단점 사용자의 IP가 수시로 바뀌는 경우 연속적인 서비스를 제공하기 어렵다. - 패킷의 내용을 복호화해야하기 때문에 더 높은 비용이 필요하다.
- 클라이언트가 로드밸런서와 인증서를 공유해야하기 때문에 로드밸런서를 통해 데이터에 접근할 수 있다는 보안적인 위험성이 존재한다.

 

 

로드밸런서의 주요 기능

  • NAT(Network Address Translation)
    • Private IP를 Public IP로 변경해줌
  • Tunneling
    • 데이터를 캡슐화하여 연결된 노드만 캡슐을 해제할 수 있게 함
  • DSR(Dynamic Source Routing Protocol)
    • 요청에 대한 응답을 할 떄 로드밸런서가 아닌 클라이언트 IP로 응답함

 

로드밸런서 동작 방법

  • 기초적인 방법으로는 Bridge / Transparent Mode가 있다.
  • 이 방법은 사용자가 서버에 서비스를 요청할 때 중간에서 로드밸런서가 NAT를 통해 IP/MAC 주소를 변조하는 방식이다.
  • 즉 요청과 응답이 모두 로드밸런서를 거치는 경우이다.
  • 요청 및 응답과정은 다음과 같다.
    1. 유저가 로드밸런서로 서비스를 요청한다.
    2. 로드밸런서는 NAT를 적용하여 IP/MAC 주소를 변조한 후에 실제 서버로 트래픽을 요청한다.
    3. 서버가 로드밸런서로 받은 요청에 대한 응답을 전달한다.
    4. 로드밸런서는 NAT를 적용하여 출발지 IP 주소를 로드밸런서의 가상 IP 주소로 변조하여 유저에게 전달한다.

 

로드밸런싱 알고리즘

  • 로드밸런서가 서버를 선택하는 방법이다.
  • 클라이언트의 요청을 여러 서버에 분배하는 로드 밸런싱 기법에는 여러 가지가 있다. 이 기법들은 로드밸런싱 알고리즘(부하 분산 방식)이라고 부른다.
  • 종류는 다음과 같다.
    1. 라운드로빈 방식(Round Robin Method)
      • 서버에 요청이 들어온 순서대로 배정하는 방식이다.
      • 클라이언트의 요청을 순차적으로 분배하기에 여러 대의 서버가 동일한 스펙이고, 서버와의 연결이 오래 지속되지 않는 경우에 활용하기 적합하다.
      • 가장 단순한 분배 방식이다.
      • 특별한 서비스가 없는 일반적인 웹 사이트를 운영하는 곳에서 사용한다.
    2. 가중 라운드로빈 방식(Weighted Round Robin Method)
      • 각각의 서버마다 가중치를 주고, 가중치가 높은 서버에 우선적으로 배분한다.
      • 주로 서버의 트래픽 처리 능력이 다를 경우 사용되는 부하 분산 방식이다.
      • 가중치가 높은 서버에 더 많은 요청을 전달한다.
      • 지정하는 가중치의 정수값을 통해 처리 용량을 정한다.
      • 서버 가중치는 사용자가 지정할 수 있고 동적으로 조정되기도 한다.
      • 특별한 서비스가 없는 일반적인 웹 사이트를 운영하는 곳에서 사용한다.
    3. IP 해시 방식(IP Hash Method)
      • 클라이언트의 IP 주소를 특정 서버에 매핑하여 요청을 처리하는 방식이다.
      • 사용자의 IP를 해싱(Hashing)하여 로드를 분배하며,  사용자의 IP가 고정되어 있기에 항상 동일한 서버로 연결되는 것을 보장한다.
        • 해싱(Hashing) : 임의의 길이를 가진 데이터에서 고정된 크기의 출력값을 생성해내는 과정, 또는 그러한 함수
    4. 최소 연결 방식(Least Connection Method)
      • 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 분배한다.
      • 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합한 방식이다.
      • 연결 수가 가장 적은 서버에 네트워크 연결 방향을 정한다.
      • 동적인 분산 알고리즘이다.
      • 각 서버에 대해서 현재 연결 수를 확인하고 가장 연결이 덜 된 서버로 요청을 분배하는 방식이다.
    5. 최소 리스폰타임(Least Response Time Method)
      • 서버의 현재 연결 상태와 응답시간을 모두 고려하여 트래픽을 분배한다.
        • 응답시간(Response Time) : 서버에 요청을 보내고 최초 응답을 받을 때까지 소요되는 시간
      • 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 트래픽을 분배하는 방식이다.

 

 

출처

https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903 

https://deveric.tistory.com/91 

https://aws-hyoh.tistory.com/entry/L4L7-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

 

 

 

'기초이론 > 네트워크' 카테고리의 다른 글

프록시(Proxy)  (0) 2022.06.18