컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업(Work), 즉, 부하(Load)를 나누는 것을 의미한다. 이로써 가용성 및 응답시간을 최적화시킬 수 있다.
위 그림에서 보는 바와 같이, 로드밸런서는 클라이언트의 요청 및 네트워크의 트래픽이 집중되는 서버들 (Server Pool / Server Farm) 또는 네트워크 허브 사이에 위치하여, 특정 서버 또는 네트워크 허브에 부하가 집중되지 않도록 트래픽을 분산시키는 역할을 한다.
Health Check (상태 확인)
서버들에 대한 주기적인 Health Check를 통해 서버들의 장애 여부를 판단하여, 정상 동작 중인 서버로만 트래픽을 보낸다.
L3 체크 : ICMP를 이용하여 서버의 IP 주소가 통신 가능한 상태인지를 확인한다.
L4 체크
L7 체크 : 어플리케이션 계층에서 체크를 수행. 실제 웹페이지에 통신을 시도하여 이상 유무를 파악.
Tunneling (터널링)
NAT (Network Address Translation)
DSR (Destination Network Address Translation)
ICMP : Internet Control Message Protocol. 패킷 전송에 실패했을 때 에러가 났음을 알림과 동시에, 해결 가능한 힌트를 제공하는 메시징 프로토콜. TCP/IP의 IP 계층에서 동작.
네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜입니다. ICMP는 주로 데이터가 의도한 대상에 적시에 도달하는지 여부를 확인하는 데 사용됩니다.
라운드 로빈 방식 (Round Robin Method)
가중 라운드로빈 방식 (Weighted Round Robin Method)
IP 해시 방식 (IP Hash Method)
해싱(Hasing) : 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것, 또는 그러한 함수.
최소 연결 방식 (Least Connection Method)
최소 응답시간 방식 (Least Response Time Method)
대역폭 방식 (Bandwidth Method)
특정 기능이 필요한 것이 아니라면, 초당 연결수(Connections Per Sec), 동시 연결수(Concurrent Connections), 처리용량(Throughput)을 성능 지표로 하여 L4 로드밸런서와 L7 로드밸런서 중 적절히 선택하는 것이 바람직할 것이다.
L4 로드 밸런서
4 계층 - 네트워크 계층(IP, IPX)이나 3 계층 - 전송 계층(TCP, UDP) 의 정보를 바탕으로 로드를 분산.
즉, IP 주소, 포트번호, MAC 주소, 전송 프로토콜 등에 따라 트래픽을 분산하는 것이 가능.
L4 로드밸런싱
장점)
☞ 패킷의 내용을 확인하지 않고 로드를 분산하므로 속도가 빠르고 효율이 높음.
☞ 데이터의 내용을 복호화할 필요가 없기에 안전.
☞ L7 로드밸런서보다 가격이 저렴.
단점)
☞ 패킷의 내용을 살펴볼 수 없으므로, 섬세한 라우팅 불가.
☞ 사용자의 IP가 수시로 바뀌는 경우라면, 연속적인 서비스를 제공하기 어려움.
L7 로드 밸런서
: 7 계층 - 어플리케이션 계층(HTTP, FTP, SMTP 등)에서 로드를 분산하기 때문에, HTTP 헤더, 쿠키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능.
L7 로드밸런싱
L4 로드밸런서의 기능에 더하여, 패킷의 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분배하는 것이 가능.
특정한 패턴을 지닌 바이러스를 감지해 네트워크 보호 가능.
Dos/DDos 와 같은 비정상적인 트래픽 필터링 가능.
방식)
URL 스위칭(URL Switching) 방식 : 특정 하위 URL들은 특정 서버로 처리하는 방식.
ex) '.../steven/image' => 이미지 처리 서버 / '.../steven/video' => 동영상 처리 서버
컨텍스트 스위칭(Context Switching) 방식 : 클라이언트가 요청한 특정 리소스에 대해 특정 서버로 연결 가능.
ex) 이미지 파일에 대해서는 확장자를 참조하여, 별도로 구성된 이미지 파일이 있는 서버 or 스토리지로 직접 연결.
쿠키 지속성(Persistence with Cookies) : 쿠키 정보를 바탕으로 클라이언트가 연결했었던 동일한 서버에 계속 할당해 주는 방식. 특히, 사설 네트워크에 있던 클라이언트의 IP 주소가 공인 IP 주소로 치환되어 전송하는 방식을 지원.
ex) X-Forwarded-For 헤더에 클라이언트 IP 주소를 별도로 기입
장점
단점