로드밸런싱(Load Balancing)

숭이·2021년 5월 21일

네트워크

목록 보기
11/11

Load Balancing

  • 수많은 서버 접속자를 감당하기 위해 서비스를 제공하는 측에서 미리 트래픽을 예측하고, 서버와 네트워크를 증설하는 방식
  • 다른 말로 네트워크 또는 서버에 가해지는 부하를 분산해주는 기술을 의미함
  • 클라이언트와 네트워크 트래픽이 집중되는 서버들 또는 네트워크 허브사이에 위치
  • Load Balancing을 수행하는 방법으로 크게 Scale-Up과 Scale-Out이 있다.
    1. Scale-Up
      서버자체를 증강하여 처리 능력을 향상시키는 것(수직 스케일)
      대칭형 멀티 프로세스(SMP)에 대해 프로세서를 추가하는 것이나 프로세서 그 자체를 고성능 모델로 옮겨놓는 것을 뜻함
    2. Scale-Out
      접속된 서버의 대수를 늘려 처리능력을 향상시키는 것(수평 스케일)
      서버의 가상화 기능을 사용하고 복수 서버를 구축해 스케일 아웃과 동등의 효과를 제공할 수도 있음

Load Balancer의 동작방식

  • 목표 : 트래픽을 다양한 방법으로 분산하여 서버나 네트워크 허브들의 성능을 최적인 상태로 유지하는 것

Load Balancer의 기능

  1. Health Check

    • 서버들에 대한 주기적인 체크를 통해 장애 여부를 판단할 수 있다.
    • 어떤 서버에 이상이 생기더라도 다른 정상 동작중인 서버로 트래픽을 보내주는 것이 가능
    • TCP/IP의 분석이 가능하기 때문에 방화벽의 역할도 수행
    • L3 체크 : 서버의 IP주소가 통신가능한 상태인지 확인
      L4 체크 : TCP의 연결지향적인 특성을 바탕으로 각 포트상태를 체크
      L7 체크 : 실제 웹 페이지에 통신을 시도하여 이상 유무를 체크
  2. Tunneling

    • 클라이언트와 서버 간 중간에서 Tunneling을 제공
    • 눈에 보이지 않는 통로를 만들어 통신할 수 있게 한다
  3. NAT(Network Address Translation)

    • IP 주소를 변환해주는 기능
    • 내부 네트워크에서 사용하던 사설 주소를 Load Balancer 외부의 공인 IP주소로 변환해준다.
      -> 공인 IP 주소를 효율적으로 사용할 수 있고 여러개의 호스트가 하나의 공인 IP 주소를 통해 접속할 수 있게 해줌!
  4. DSR(Direct Server Routing)

    • 서버에서 클라이언트로 되돌아가는 경우 Load Balancer를 거치지 않고 바로 클라이언트를 찾아가는 방식
      -> Load Balancer의 부하를 줄여줄 수 있는 장점이 있음!

Load Balancing 방법

  1. Round Robin 방식
    세션을 각 서버에 순차적으로 맺어주는 방식

  2. 가중치 및 비율할당 방식
    서버마다 비율을 설정하고 해당 비율만큼 세션을 맺어주는 방식.
    특정 서버의 성능이 월등히 뛰어나다면 해당 서버로 세션 몰아주기!

  3. 최소연결 방식
    가장 적은 세션을 가진 서버로 트래픽을 보내는 방식(가장많이 사용!!)

  4. Response Time
    가장 빠른 응답시간을 보내는 서버로 트래픽을 우선 보내주는 방식

  5. Hash 방식
    특정 클라이언트는 특정 서버로만 할당시키는 방식

  6. URL 스위칭 방식
    특정 하위 URL은 서버로 처리하는 방식
    예를 들어 “…/James/image”같은 특정 URL을 가진 주소들은 서버가 아닌 별도의 스토리지에 있는 객체 데이터로 바로 연결되도록 구성할 수 있음

  7. 쿠키 지속성 방식
    쿠키 정보를 바탕으로 클라이언트가 연결했었던 동일한 서버에 계속 할당해주는 방식

1개의 댓글

comment-user-thumbnail
2021년 5월 23일

소통해요^^

답글 달기