본문 바로가기
야미스터디/Network

[Network] 로드밸런스

by 의정부핵꿀밤 2023. 3. 30.
728x90

🤔 트래픽에 대처할 수 있는 방법

클라이언트의 요청이 많아지면 트래픽이 증가하게 되고, 그에 따라 단일 서버만으로는 정상적인 서비스가 어렵다

따라서 이러한 수많은 트래픽에 대처할 수 있는 방법은 크게 2가지다

 

  • Scale-up : 서버 자체의 성능을 높이는 것
  • Scale-out : 여러 대의 서버를 두는 것

⭐️ Scale-out 방식의 경우 여러 대의 서버로 트래픽을 균등하게 분산해줘야 하는데, 이 때 로드밸런싱이 필요하다

 

 


💡 로드 밸런싱 (Load Balancing)

  • 수많은 트래픽에서 클라이언트의 요청을 다수의 서버로 분산시켜주는 컴퓨터 네트워크의 기술이다
  • 로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭한다
  • 클라이언트와 서버풀* 사이나 네트워크 허브 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 한다
  • 로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술인 것이다!
  • 로드 밸런서를 이용한 부하 분산을 통해 가용성 및 응답 시간을 최적화시킴으로써 안정적인 서비스 구축이 가능하다
💡 *서버풀 (Server Pool) : 분산 네트워크를 구성하는 서버들의 그룹

 

 

 

💡 로드 밸런싱의 주요 기능

NAT(Network Address Translation)

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

 

Tunneling

  • 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념
  • 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다

 

DSR(Dynamic Source Routing protocl)

  • 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 클라이언트를 찾아가는 개념이다

 

 

 

💡 로드 밸런싱 알고리즘

라운드 로빈 방식 (Round Robin Method)

  • 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
  • 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우 적합하다

 

가중 라운드로빈 방식 (Weighted Round Robin Method)

  • 각 서버에 가중치를 매기고 가중치가 높은 서버에 요청을 우선적으로 배정하는 방식
  • 서버의 트래픽 처리 능력이 다른 경우 사용한다

 

IP 해시 방식 (IP Hash Method)

  • 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
  • 사용자가 항상 동일한 서버로 연결된다

 

최소 연결 방식 (Least Connection Method)

  • 요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 트래픽을 배정하는 방식
  • 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합하다

 

최소 리스폰 타임 방식 (Least Repsonse Time Method)

  • 서버의 현재 연결 상태와 응답시간을 모두 고려하여 트래픽을 배분하는 방식
  • 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 로드를 배분한다

 


🌱 L4 로드 밸런싱

  • 전송 계층(4계층)에서 로드를 분산한다
  • TCP, UDP 포트 정보를 바탕으로 한다
  • 데이터 안을 보지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 높음
  • 섬세한 라우팅이 불가능하지만 L7 로드 밸런서보다 저렴하다
  • 부하 분산에는 L4 로드밸런서와 L7 로드밸런서가 가장 많이 활용되는데, L4 로드밸런서부터 포트(Port) 정보를 바탕으로 로드를 분산하는 것이 가능하기 때문이다
  • 한 대의 서버에 각기 다른 포트 번호를 부여하여 다수의 서버 프로그램을 운영하는 경우, 최소 L4 로드밸런서 이상을 사용해야 한다!

 

 

 

🌱 L7 로드 밸런싱

  • 애플리케이션 계층에서 로드를 분산한다
  • HTTP 헤더, 쿠키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능하다
  • 즉, 패킷 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분배하는 것이 가능하다
  • 섬세한 라우팅이 가능하고, 비정상적인 트래픽을 필터링할 수 있다
  • 패킷의 내용을 복호화해야 하기 때문에 더 많은 비용이 든다
  • L7 로드 밸런서의 경우 특정한 패턴을 지닌 바이러스를 감지해 네트워크를 보호할 수 있으며, DoS/DDos와 같은 비정상적인 트래픽을 필터링할 수 있어 네트워크 보안 분야에서도 활용되고 있다

 

 

 

🤔 L4 로드밸런서 vs L7 로드밸런서

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

 

 


🤖 로드밸런서 장애 대비

> 로드밸런서를 이중화하여 장애를 대비할 수 있다!

 

장애가 발생한 경우의 시나리오

  1. 이중화 된 Load Balancer들을 서로 Health Check 를 한다
  2. Main Load Balancer가 동작하지 않으면 가상 IP(VIP)가 여분의 Load Balancer로 변경된다
  3. 이후 여분의 Load Balancer로 운영한다

 

 

 


[참고]

https://velog.io/@jisoo1170/Load-Balancing%EC%9D%B4%EB%9E%80

 

Load Balancing이란?

로드 밸런싱에 대해서 알아보자

velog.io

https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903&navigationType=push 

 

로드밸런서(Load Balancer)의 개념과 특징

[BY 가비아] 현대의 모든 정보는 인터넷을 통해 연결되어있습니다. 인터넷의 발달은 데이터 통신을 보다...

m.post.naver.com

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

 

로드 밸런서(Load Balancer)란?

 

nesoy.github.io

https://tecoble.techcourse.co.kr/post/2021-11-07-load-balancing/

 

로드 밸런싱에 대해 알아보자!

tecoble.techcourse.co.kr

 

728x90

'야미스터디 > Network' 카테고리의 다른 글

[Network] IP, TCP/UDP, HTTP  (0) 2023.03.24
[Network] DNS  (0) 2023.03.16
[Network] OSI L4  (0) 2023.03.16
[Network] OSI 7계층  (0) 2023.03.15
[Network] HTTP Status code 📌  (0) 2022.11.19

댓글