마짱짱의 지식창고

LoadBalance 란? 본문

Network

LoadBalance 란?

마짱짱 2020. 9. 16. 16:22
반응형

  알아보기전 어떤 경우에 로드밸런서 라는걸 사용한지 알아보자

    클라이언트가 한두명일 경우는 서버가 여유롭게 클라이언트가 원하는 결과를 응답할 수 있다.

    하지만 만약 한두명이아닌 수천명 수만명 이면..?

    서버는 응답하려하지만 과부화와 동작을 멈추게 된다.

이를 히결하기 위한 방법으로

  Scale-up : 서버가 더 빠르게 동작하기위해 하드웨어 성능을 올리는 방법

  Scale-Out : 여러대의 서버가 나눠서 일을 하는 방법

이 중 Scale-Out 방법을 많이 사용하는데 장점으로

  : 하드웨어 향상비용보다 서버한대 비용이 더 적고, 

    여러대의 서버 덕분에 [무 중단 서비스]를 제공 할 수있다.

여러대의 서버에게 균등학게 트래픽을 분산시켜주는 역할이 바로 LoadBalancer 이다.

LoadBalance 란?

  - 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러대의 서버가 분산 처리하여 해결해주는 서비스 이다.

 

주요기능?

  - NAT(Network ADdress Translation)

    : 사설 IP주소를 공인 IP 주소로 바꾸는데 사용하는 통신망의 주소 변조기이다.

  - tunneling

    : 인터넷상에서 눈이 보이지 않는 통로를 만들어 통신할 수있게 하는 개념

    : 데이터를 캡슐화해서 연결된 상호간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.

  - DSR(Dynamic Source Routing protocol)

    : 로드 밸런서를 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치 IP주소가 아닌

      클라이언트의 IP주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념이다.

 

주로 사용하는 종류

  L4 : IP와 Port 이용 , TCP,UDP

  L7 : HTTP, HTTPS FRPT

 

  HTTP

    - X-forwarded-For : HTTP 또는 HTTPS 로드밸런서를 사용할때 클라이언트의 IP주소를 식별하는데 도움을 준다

    - X-Forwarded-Proto : 클라이언트가 로드밸런서 연결에 사용한 프로토콜(HTTP,HTTPS)를 식별하는데 도움을 준다

    - X-Forwarded-Port : 클라이언트가 로드 밸런서 연결에 사용한 포트를 식별하는데 도움을 준다.

 

로드밸런스 종류

  - Round Robin

    : 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식,

      클라이언트의 요청을 순서대로 분배하기 떄문에 여러대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결이

      오래 지속되지 않는 경우 활용하기 적합하다.

  -  Weighted Round Robin Method

    : 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트의 요청을 우선적으로 배분한다.

  - IP Hash Method

    : 클라이언트의 IP주소를 특정 서버로 매핑하여 요청을 처리하는 방식

      사용자의 IP를 해싱해 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장한다.

       (Hashing,임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑 하는것)

  - Least Connection Method

    : 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분한다.

      자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합한 방식

  - Least Response Time Method

    : 서버의 현재 연결상태와 응답시간을 모두 고려하여 트래픽을 분배한다.

       가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 로드를 배분하는 방식

       (ResponseTime: 서버에 요청을 보내고 최초 응답을 받을때 까지 소요되는 시간)

로드밸런스 장애 대비 및 시나리오

  이중화 하여 대비한다.

이중화된 로드밸런서들은 서로 Health Check를 한다.

 메인 로드밸런서가 동작하지 않으면 가상IP는 여분의 로드밸런서로 변경된다.

  여분의 로드밸런서로 운영하게 된다.

 

---

참고

https://nesoy.github.io/articles/2018-06/Load-Balancer

반응형

'Network' 카테고리의 다른 글

MAC 주소 / IP 주소  (0) 2021.03.25
유니캐스트, 브로드캐스트, 멀티캐스트, 애니캐스트  (0) 2021.03.25
Proxy 란? (HAProxy)  (0) 2020.09.16
Switch Protocol  (0) 2020.05.15
Routing(라우팅)  (0) 2020.05.15