컴퓨터 네트워크 기술로 둘이나 셋 이상의 중앙처리장치나 저장장치 등 퓨터 자원들에게 부하( Load )를 나누는 것을 의미한다.
-> 한 서버가 일을 다 처리하면 부담스러우니 여러 서버에게 일을 분산하겠다.
쉽게 여러 서버가 분산 처리하는 것을 로드 밸런싱이라고 하는데, 로드 밸런서가 몇 계층에서 분산작업을 수행하는지에 따라 NLB( Network LoadBalancer )와 ALB( Application LoadBalancer )로 나눌 수 있다.
OSI 4계층, Transport 계층을 사용하는 NLB - IP 주소와 포트 번호 부하 분산 가능
OSI 7계층, Application 계층을 사용하는 ALB - URL 또는 HTTP 헤더에서 부하 분산 가능
-> 4계층의 Transport 계층( TCP, UDP )의 정보를 바탕으로 로드를 분산.
-> 7계층의 Application 계층( HTTP, FTP, SMTP 등 )에서 로드를 분산하기 때문에 HTTP 헤더, 쿠키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능.
라운드 로빈은 클라이언트로 받은 요청을 로드밸런싱 대상 서버에 순서대로 할당받는 방식이다.
각 요청은 1 -> 1, 2 -> 2, 3 -> 3 서버에 할당한다.
가중 라운드 로빈 방식은 실제 서버에 서로 다른 처리 용량을 지정 할 수 있다.
각 서버에 가중치를 부여 할 수 있으며 , 지정한 정수값을 통해 처리 용량을 정한다.
최소 연결 방식은 연결 수가 가장 적은 서버에 네트워크 연결 방향을 정한다.
동적인 분산 안고리즘으로 각 서버에 대한 현재 연결 수를 동적으로 카운트할 수 있고, 동적으로 변하는 요청에 대한 부하를 분산시킬 수 있다.
클라이언트의 IP주소를 특정 서버로 매핑하여 요청을 처리하는 방식이다.
사용자의 IP를 해싱해( Hashing 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것 )로드를 분배해서 사용자가 항상 동일한 서버로 연결되는 것을 보장함.
서버의 현재 연결 상태와 응답시간을 고려하여 트래픽을 배분하는 방식이다.
가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 로드를 배분한다.