로드밸런싱 (Load Balancing)

컴투루·2022년 4월 20일
0

스터디

목록 보기
7/10

📌 Load Balancing

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

  • 로드밸런서(Load Balancer) : 작업을 담당하는 장비

로드 밸런싱과 로드밸런서를 쉽게 이해하기 위해서 하나의 상황을 예로 들자면 서버가 하나있는데 사용자가 몇십만명이 들어온다고 생각해보자.
이 서버에는 부하가 걸릴것이다. 그래서 서버를 두개로 나누게 되는데
그렇게 한다고 해서 사용자들이 알아서 두개의 서버에 나누어서 들어가지는 않죠. 이런 상황을 방지하기 위해서 서버를 분산하고 부하를 분산하는 작업을 로드밸런싱이라 하고 이러한 작업을 담당하는 장비를 로드밸런서라고 합니다.


📌 Load Balancing의 종류

✅ Round Robin

요청이 들어오는대로 서버마다 균등하게 요청을 분배하는 알고리즘

server를 순회하면서 서비스하는 알고리즘 입니다.
a,b,c 서버가 있으면 a,b,c,a 순으로 돌면서 부하를 분산하는 방식입니다.
가장 간단하고 이해가 쉬워서 많이 사용하지만 서버간 처리 용량이 다른 경우에는 적합하지 않아서 서버의 성능차이가 크지 않을 때 많이 사용됩니다.

✅ Weighted Round Robin

라운드 로빈방식과 유사하지만 각 서버마다 가중치를 두어 우선적으로 갈 곳을 지정합니다. 서버 가중치는 사용자가 지정할 수 도 있고 동적으로 조정되기도 합니다.

✅ Least Connection

최소연결 알고리즘은 서버마다 연결된 커넥션이 몇개인지 체크하여 커넥션이 가장 적은 서버로 요청을 분배하는 방식

✅ Weighted Least Connecion

리스트 커넥션방식으로 분배하지만 서버 가중치에 따라 요청을 더 분배하기도 하고 덜 분배하기도 합니다. 서버 풀에 존재하는 서버들의 사양이 일관적이지 않고 다양한 경우 효과적입니다.

✅ Fatest Response Time

응답우선방식은 서버가 요청에 대해 응답하는 시간을 체크하여 가장 빠른 서버로 요청을 분배하는 방식

✅ source Hash

사용자의 IP를 해싱한 후 그 결과에 따라 서버로 요청을 분배하는 방식으로 사용자의 IP는 고정되어 있기 때문에 항상 같은 서버로 연결된다는 보장을 받을 수 있습니다.


📌 Load Banancer의 종류

= Load Balancing을 위한 스위치 종류

어떤 주소를 다루는가에 따라서 스위치가 구분됨

❗️상위계층으로 갈수록 섬세한 부하분산이 가능하지나 가격이 비싸지고
❗️하위계층으로 갈수록 간단한 부하분산이 가능하고 가격이 저렴해집니다.

✅ L2 스위치 : MAC주소 기반

  • 데이터 링크 계층에 위치하여 서로 다른 데이터링크간을 스위칭해주는 장비
  • 패킷의 MAC주소를 읽어 스위칭해서 데이터를 특정 포트로만 전송
  • 장점
    - 구조가 간단하며 신뢰성이 높음
    - 가격이 저렴하고 성능이 높음
  • 단점
    - 브로드캐스트 패킷에 의해 성능 저하 발생
    • 라우팅이 불가능 / 상위레이어 프로토콜을 이용한 스위칭 불가

✅ L3 스위치 : 프로토콜 주소 IP 기반

  • 네트워크 계층에 위치하여 서로 다른 네트워크간을 연결해주는 장비
    = 데이터의 네트워크 주소를 보고 스위칭 해주는 장비
  • 포트간 패킷 스위칭을 위해 IP, IPX주소를 읽어서 스위칭
  • 통신경로 한번만 설정
  • L2 + 라우팅 기능
    - 고성능 하드웨어를 기초로함
  • 장점
    - 브로드캐스트 트래픽으로 전체 성능 저하를 막을 수 있음
    - 트래픽 체크, 가상랜등의 부가기능을 가지고 있음
  • 단점
    - 특정 프로토콜을 이용해야 스위칭 할 수 있음
    - 대부분의 트래픽이 서브넷의 한계를 넘음

연결된 네트워크의 패킷이 L3로 들어오게 되면 목적지의 IP주소를 확인하여 해당 IP에 연결된 포트로 패킷을 전송함
즉 연결된 장비들의 전송하려는 목적지를 판단하여 라우팅 기능을 사용하는 네트워크 장비임

✅ L4 스위치 : Port 기반

  • L3 + Load Balancing
  • L3와 같이 프로토콜을 기반으로 하며 어플리케이션별로 우선순위를 두어 스위칭이 가능함
  • 여러대의 서버를 1대처럼 묶을 수 있는 부하분산 기능을 제공함
  • 웹 트래픽, FTP 트래픽과 같이 정해진 서비스 포트를 보고 트래픽을 스위칭해주는 장비
  • 장점
    - 보안성이 높고 고급 스위칭 설정이 가능함
    - 용량에 관계없이 네트워크 성능 개선에 기여함
  • 단점
    - 프로토콜에 의존적이며 설정이 복잡함
    - 고가의 장비로 L2, L3 스위치와 적절한 혼합배치가 필요함

TCP, UDP 등 패킷의 헤더를 사용하여 VIP를 구성하고 IP, PORT를 통한 session로드밸런싱 기능을 사용하여 분배함

✅ L7 스위치 : URL 기반

  • L4 + Application
  • 데이터 안의 실제 내용까지 조회해보고 특정 문자열이나 특정 명령을 기준으로 트래픽을 스위칭
  • 더 상세한 패킷을 처리하므로 패킷의 부하분산, QOS기능이 가능
  • Dos/SYN Attack에 대한 방어
  • CodeRed/Nimda등 바이러스 감염 패킷의 필터링
  • 네트워크 자원의 독점 방지를 통한 네트워크 시스템의 보안성 강화가 가능함

불필요한 트랜잭션 차단, 네트워크 침입에 대한 부분에 한하여 설정 가능함


📑 References

https://deveric.tistory.com/91
http://www.incodom.kr/Load_Balancing#h_8803eb7cc2085ea2ada358bb6cb03e10
https://jesc1249.tistory.com/26
https://linkhub.tistory.com/77
https://siran.tistory.com/205

profile
맘 먹으면 못할 게 없지

0개의 댓글