Load Balancing

.·2022년 10월 20일
0

Computer Science

목록 보기
71/81

서버 증설

현재 쓰고 있는 서버가 모든 트래픽을 감당하지 못할 경우 서버를 증설해야 한다.

Scale Up

서버의 성능을 올리는 것

특징

  • CPU, RAM 추가, Disk 증설 등 고사양의 부품으로 교체하거나 서버 자체를 고사양으로 변경한다.

장점

  • 집중 방식으로 구성해야하거나 분할 처리가 어려운 경우
  • 데이터베이스 서버에 적용

단점

  • Scale Out에 비해 비용이 많이 들고 확장에 한계가 있다.
  • 장애 발생 시에 영향이 크다.
  • 확장을 위한 다운타임이 발생한다.

Scale Out

새로운 서버를 추가하는 것

특징

  • 분산처리, 병렬처리 방식
  • 기존 서버와 동일하거나 낮은 성능의 서버를 증설해서 운영한다.
  • 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 반드시 필요하다.

장점

  • Scale Up 방식에 비해 저렴하고 지속적인 확장이 가능하다.
  • 일부 서버가 고장났을 때 다른 서버로 요청을 돌려서 안정적으로 사용할 수 있다.
  • 무중단 서비스 제공 가능

단점

  • 비용이 서버 대수마다 부과되면 비용이 더 비싸질 수도 있다.

Load Balancer

서버 여러 대를 사용할 때 서버의 로드율, 부하량, 속도저하 등을 고려하여 트래픽을 분산 처리 해주는 장치

특징

  • 클라이언트와 서버 그룹 사이에 위치한다.
  • 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해서 각 서버가 최적의 퍼포먼스를 낼 수 있도록 한다.
  • 장애 대비
    • Load Balancer를 이중화해서 서로 Health Check를 한다.
    • Main Load Balancer가 동작하지 않으면 가상 IP는 여분의 Load Balancer로 변경하고 이 로드 밸런서를 운영한다.

주요 기능

  1. NAT(Network Address Translation)
    • 통신망의 주소 변조기
    • public IP ↔ private IP
  2. Tunneling
    • 인터넷상에서 눈에 보이지 않는 통로를 만들어서 통신할 수 있게 해준다.
    • 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.
  3. DSR(Dynamic Source Routing protocol)
    • 서버에서 클라이언트로 되돌아갈 때 목적지 주소를 네트워크 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 변경해서 스위치를 거치지 않고 바로 클라이언트를 찾아갈 수 있게 해준다.

서버 선택 알고리즘

  1. Round Robin
    • 요청을 순서대로 돌아가며 배정한다.
    • 여러 대의 서버가 동일한 스펙을 가지고, 서버와의 연결(세션)이 오래 지속되지 않는 경우
  2. 가중 Round Robin
    • 각 서버마다 가중치를 매기고 높은 가중치의 서버에 요청을 우선적으로 배분한다.
    • 서버의 트래픽 능력이 상이한 경우
  3. IP Hashing
    • 클라이언트(Source)의 IP 주소를 특정 서버로 매핑한다.
    • 사용자가 항상 같은 서버로 연결되는 것을 보장한다.
  4. Least Connection
    • 요청이 들어온 시점에 연결 개수가 가장 적은 서버에 우선 트래픽을 배분한다.
    • 트래픽으로 인해 세션이 길어지거나 서버에 분배된 트래픽이 일정하지 않은 경우 권장한다.
  5. Least Response Time
    • 서버의 현재 연결 상태와 응답 시간(요청 보내고 최초 응답을 받을 때까지 소요되는 시간)을 모두 고려하여 트래픽을 분배한다.
    • 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선 배분한다.

종류

  • OSI 7 layer 계층 중에서 어느 계층에서 분산 처리를 하느냐에 따라 종류가 나뉜다.
  • 한 대의 서버에 각각 다른 포트 번호를 부여해서 운영하는 경우 최소 L4 로드밸런서 이상을 사용해야 한다.
  • 상위 계층에서 사용되는 장비는 하위 계층의 장비가 갖고 있는 기능을 모두 가지고 있다.
  • 상위 계층으로 갈수록 더욱 정교한 로드 밸런싱이 가능하다.

L4 Load Balancer

특징

  • 4계층인 transport layer에서 로드밸런싱을 한다.
  • Transport layer(TCP, UDP, port 번호), Network layer(IP, IPX), Link layer(MAC address)에 따라 트래픽을 분산한다.

장점

  • 속도 빠르고 효율이 좋음
    • 데이터를 들여다보지 않고도 패킷 레벨에서만 분산한다.
  • 안전성
    • 데이터의 내용을 복호화할 필요 없다.
  • 저렴한 가격

단점

  • 패킷의 내용을 보지 못하기 때문에 섬세한 라우팅이 불가능하다.
  • 사용자의 IP가 수시로 바뀐다면 연속적인 서비스를 제공하기 어렵다.

L7 Load Balancer

특징

  • 7계층인 application layer에서 로드밸런싱을 한다.
  • TCP/UDP 정보는 물론 Application layer(HTTP, FTP, SMTP)에서 HTTP 헤더, HTTP URI, 쿠키 정보, FTP의 파일명을 기준으로 로드를 분산한다.

장점

  • 상위 계층에서 로드를 분산하기 때문에 훨씬 더 섬세한 라우팅이 가능하다.
    • 패킷의 내용을 확인하고 내용에 따라 특정 서버에 분배 가능
    • 클라이언트의 요청을 보다 세분화해서 서버에 전달할 수 있다.
  • 캐싱 기능 제공
  • 보안
    • 특정 패턴을 지닌 바이러스를 감지해서 네트워크를 보호할 수 있다.
    • DoS/DDoS와 같은 비정상적인 트래픽을 필터링할 수 있다.

단점

  • 더 높은 비용
    • 패킷의 내용을 복호화해야 한다.
  • 클라이언트가 로드밸런서와 인증서를 공유해야 한다.
    • 공격자가 로드밸런서를 통해서 클라이언트 데이터에 접근할 수 있다.

출처

0개의 댓글