728x90
반응형
Load Balancing 이란?

  • 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결해주는 서비스

  • 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능

  • IP, Port, Session을 기반으로한 기술로 L4 Switch라고도 함



주요 기능

  • NAT(Network Address Translation): 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기

  • DSR(Dynamic Source Routing protocol): 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

  • Tunneling : 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념, 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제



종류

  • L2 : Mac 주소 바탕으로 Load Balancing

  • L3 : IP 주소를 마탕으로 Load Balancing

  • L4 : Transport Layer (IP와 Port) Level에서 Load Balancing, TCP/UDP



  • L7 : Application Layer (사용자의 Request) Level에서 Load Balancing, HTTP/HTTPS/FTP (Protocol)



HTTP

No Image

  • X-Forwarded-For : Http 또는 Https 로드 밸런서를 사용할 때 클라이언트의 IP 주소를 식별하는데 도움
  • X-Forwarded-Proto : 클라이언트가 로드 밸런서 연결에 사용한 프로토콜(Http 또는 Https)을 식별하는데 도움
  • X-Forwarded-Port : 클라이언트가 로드 밸런서 연결에 사용한 포트를 식별하는데 도움



Load Balancing 정책

  • Least Connection
    - 현재 세션이 가장 적은쪽으로 세션을 연결 (현재 세션 수를 고려하기 때문에 약간의 메모리를 소비)
    - 트래픽으로 인해 세션이 길어지는 경우 권장하는 방식
    - Default metric으로 제일 많이 사용하는 옵션

  • Weighted Least Connection
    - Real Server의 처리 능력을 고려하여 가중치를 부여하면서 least-connection scheduling을 적용하여 트래픽을 고루게 분산시키는 방법

  • Round Robin
    - Real Server의 마지막 번호를 가진 서버로부터 출발하여 순차적으로 세션을 연결하는 방식
    - 특별한 서비스가 있지않은 일반적인 웹 사이트에서 운영하는 곳에서 사용
    - 가장 단순한 기법으로 장비에 부하가 적음

  • Weighted round-robin
    - 서로 다른 처리 능력을 가진 서버가 있을 경우 사용, 가중치를 주어 많이 처리할 수 있는 서버로 많은 트래픽을 할당

  • Source (Hash)
    - 사용자의 IP를 Hashing하여 분배하는 방식으로 항상 같은 서버로 연결되는 것을 보장 
    - Source IP(사용자)와 Destination IP(Vip)를 조합하여 어떤 수(Hasing Key)를 만들어낸다. 만약 Source의 마지막 자리 IP가 1이고 Destination이 244이면 245라는 수를 만들어 설정된 Real Server의 수로 나눔을 한다. 만약 Real Server가 3대라면 245/3이면 나머지가 0이므로 1번 Real Server에 접속하고 나머지가 1이면 2번 Real Server에 접속하도록 하는 방식이다. 그러면 그 다음에 접속하더라도 Source IP와 Destination IP가 동일하다면 나머지값도 항상 동일하므로 지정된 서버로만 계속 접속하게 된다. 보통은 세션을 유지해야하는 사이트(인증, 보안)에서 주로 사용

  • Minmiss
    - Source (Hash)와 비슷한 기법으로 국내에서 사용되지 않음, 장비 자체에서 정해진 Hashing 알고리즘을 적용시키는데 Source 기법과 차이는 Real Server가 Down 되었을 경우 여기에 세션이 물려있던 사용자들을 어떻게 처리할 것인가 하는 부분에서 차이가 있다.



서비스 방식

ì¬ì©ì ì½ì ì´ë¯¸ì§

  • 네트워크 상단에 L4 Switch 가상서버가 존재하여 서버로 들어오는 패킷을 Real Server로 균일하게 트래픽을 부하분산
    (Real Server가 정상적으로 작동하지 않는 경우 이를 감지하여 정상적으로 작동하는 서버로 부하분산)
  • Load Balancing으로 구성된 서버 중 특정 서버가 다운되었을때 다운된 서버로 이동하는 트래픽을 정상 작동중인 서버로 보내 서비스 가용성을 높임
  • 이중화된 Load Balancer들은 서로 Health Check를 한다



장애 발생시 구동 방식
No Image



장점

  • 고가의 서버로 확장하지 않고 저렴한 비용으로 다수의 서버를 증설하여 경제적 비용 절감
  • 대량의 트래픽으로 1대의 서버에 집중적인 부하율이 높아지면 L4 Switch가 이를 감지하여 합리적으로 부하분산 처리
  • 1대의 서버 장애가 발생하여도 서비스 중단 없이 다른 서버로 적절히 자동 분배하여 무중단 서비스 운용 가능
  • 서버 증설시 무중단 서비스 가능



반응형

'Network' 카테고리의 다른 글

ICMP (Internet Control Message Protocol)  (0) 2020.10.25
Forward Proxy and Reverse Proxy  (0) 2018.12.19
라우터 초기화 방법  (0) 2018.08.14
NAT와 NAPT  (0) 2018.08.14
IP Masquerade (IP 마스커레이드)  (0) 2018.08.14

+ Recent posts