글또 !

로드 밸런싱(Load Balancing)

integerJI 2023. 5. 10. 22:09

로드 밸런싱(Load Balancing)

서비스의 규모가 커지고 서버 한대로는 서비스 운영이 어려울 때, 대처할 수 있는 방법은 크게 두 가지 입니다.

  • Scale-up : 기존 서버의 성능을 업그레이드한다.
  • Scale-out : 기존 서버와 동일하거나 낮은 성능의 서버로 증설한다.

각 서비스 별 상황에 맞게 처리를 해야 한다.

여기서 Scale-out 방식을 채택하였다면 여러 대의 서버로 트래픽을 균등하게 분산해 주는 로드밸런싱 작업이 반드시 필요하다.

 

로드밸런싱이란?

클라이언트에서의 트래픽으로 인해 서버에 가해지는 부하를 분산 시켜주는 장치이다.

클라이언트와 서버 또는 네트워크 허브 사이에 위치한다.

 

로드밸런싱의 알고리즘

  1. Round Robin (라운드로빈 방식)
    • 서버에 들어온 요청을 순서대로 돌아가며 각 서버에 균등하게 분배하는 방식.
    • 여러 대의 서버가 동일한 스펙을 가지고 있다면 사용하기 적합하다.
  2. IP Hash (IP 해시 방식)
    • 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리한다.
    • 사용자의 IP를 해싱하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장한다.
  3. Least Connection (최소 연결 방식)
    • 요청이 들어온 시점에 가장 적은 트래픽을 처리하고 있는 서버에 우선 적으로 트래픽을 분배한다.
  4. Least Response Time (최소 리스폰 타임)
    • 서버의 현재 연결 상태와 응답 시간을 모두 고려하여 트래픽을 분배한다.

로드밸런싱의 대표적인 4가지 알고리즘이다. 한 가지 더 추가를 하자면 가중 라운드 로빈 방식으로 서버마다 가중치를 설정하여 부하를 분배하는 방식이다.

이 알고리즘을 통하여 OSI의 7계층 중 L4, L7에 로드밸런싱을 구축한다.

로드밸런싱 L4, L7

 

  L4 L7
네트워크 계층 Layer 4 전송계층(Transport Layer) Layer 7 응용계층(Application Layer)
특징 TCP/UDP 포트 정보를 바탕으로 작동 네트워크 계층이나 전송계층의 정보를 바탕으로 트래픽을 분산 TCP/UDP를 포함하여 HTTP의 Url, Ftp의 파일명, 쿠키 정보 등을 바탕으로 작동
(TCP/UDP를 확인할 수는 있지만 응용계층에서 프로토콜 기반의 정보를 처리하려면 L4가 낫다.)
장점 1. 데이터를 보지 않고 패킷 레벨에서만 트래픽을 분산하기 때문에 속도가 빠르고 효율적이다.
2. 데이터의 내용을 복호화 할 필요가 없어 안전하다.
3. L7보다는 가격이 저렴하다.
1. 상위 계층에서 로드를 분산하기 때문에 훨씬 더 섬세한 라우팅이 가능하다.
2. 캐싱 기능을 사용할 수 있다.
3. 비정상적인 트래픽을 사전에 필터 할 수 있어 서비스의 안정성이 높아진다.
단점 1. 패킷의 내용을 볼 수 없기 때문에 섬세한 라우팅이 불가능하다.
2. 사용자의 IP가 수시로 바뀌는 경우 연속적인 서비스를 제공하기 어렵다.
1. 패킷의 내용을 복호화 해야 하기 때문에 높은 비용을 지불해야 한다.
2. 클라이언트가 로드밸런서와 인증서를 공유하기 때문에 공격자가 로드밸런서를 통해서 클라이언트 데이터에 접근할 경우 보안상 위험성이 존재한다.

'글또 !' 카테고리의 다른 글

REST와 RESTful  (0) 2023.06.10
kakao tech meet 후기, AI와 Chat GPT..  (0) 2023.05.11
chat gpt 활용  (0) 2023.03.19
[mssql] 인덱스를 타지 않는 쿼리  (0) 2023.03.19
브런치먹기  (1) 2023.02.05