그림 설명
1. 유저가 요청을 보낸다
2. -인터넷을 타고 게이트 웨이/라우터에 도달-
3. 로드밸런서에 도달
4. 로드밸런서가 서버에 요청을 전달한다.
(서버 한 대에 요청(트래픽)이 몰리면 한 대가 과부화되니까 요청을 로드밸런서가 나눠서 분배한다.)
대부분은 round robin과 sticky session을 사용함
로드밸런서는 클라이언트의 요청 및 네트워트의 트래픽이 집중되는 서버들(Server Pool / Server Farm) 또는 네트워크 허브 사이에 위치.
특정 서버 또는 네트워크 허브에 부화가 집중되지 않도록 분산시키는 역할을 한다.
데이터 스트림을 인터넷 상에서 가상의 파이프를 통해 전달시키는 기술로, 패킷 내에 터널링할 대상을 캡슐화시켜 목적지까지 전송.
연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제하게 함.
서버에서 클라이언트로 트래픽이 되돌아가는 경우, 목적지를 클라이언트로 설정한 다음, 네트워크 장비나 로드밸런서를 거치지 않고 바로 클라이언트를 찾아가는 방식.
이 기능을 통해 로드밸런서의 부하를 줄여줄 수 있음.
서버로 들어오는 요청을 순서대로 돌아가며 배정하는 방식.
클라이언트의 요청을 순서대로 분배하기 때문에 서버들이 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우 활용하기 적합
-- 더 높은 성능을 가진 서버에게 요청을 가중하는 방식
클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
사용자의 IP를 해싱하여 부하를 분산하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장.
경로가 보장되며, 접속자 수가 많을 수록 분산 및 효율이 뛰어나다.
서버의 현재 연결 상태와 응답시간을 모두 고려하여, 가장 짧은 응답 시간을 보내는 서버로 트래픽을 할당한다.
응답시간이 가장 짧다는건 부하가 가장 적게 받고 있다는 뜻이니까
L4(Layer 4) 로드 밸런서와 L7(Layer 7) 로드 밸런서는 OSI(Open Systems Interconnection) 모델의 다른 레이어에서 동작하는 두 가지 다른 유형의 로드 밸런서이다.
주요 기능: 전송 계층에서 동작하며, 주로 IP 주소 및 포트 번호 수준에서 트래픽을 관리합니다.
로드 밸런싱: 네트워크 트래픽을 여러 서버로 분산시키는 기능을 수행합니다.
TCP 및 UDP: 주로 TCP 및 UDP와 같은 전송 계층 프로토콜을 기반으로 동작합니다
주요 기능: 응용 계층에서 동작하며, 트래픽을 애플리케이션 수준에서 관리합니다.
로드 밸런싱: 애플리케이션 데이터의 내용(Content)을 기반으로 로드 밸런싱을 수행합니다. 예를 들어, HTTP 헤더나 쿠키 정보를 이용하여 특정 서버로의 요청을 보낼 수 있습니다.
SSL 종단 지원: HTTPS와 같은 암호화된 연결에 대한 종단 간 지원을 제공할 수 있습니다.
L7은 애플리케이션 수준에서 트래픽을 관리기 때문에
더 정교한 로드 밸런싱 기능 제공 가능.
네트워크 상단에 가상서버가 존재하여 서버로 들어오는 패킷을 리얼 서버로 균일하게 트래픽을 분산시킨다.
서버에 장애가 발생하면 이를 감지하여 정상적으로 작동하는 서버로 트래픽을 분산시킨다.
장점
로드밸런싱을 이용하면 한 서버가 다운되더라도 이중화시킨 다른 서버에서 서비스를 지속하여, 서비스들이 문제를 인지하지 못하게 할 수 있다.
단지 노드를 추가하는 것만으로 서비스가 확장성을 가질 수 있다.
단점
로드밸런서를 사용할 때 어려운 문제 중 하나는 세션 데이터를 관리하는 것이다.
클라이언트의 연결 정보를 저장하는 세션이 로드밸런싱을 통해 하나의 서버 장비에 저장되는 경우, 추후 다른 서버로 접속하게 된다면 해당 클라이언트의 세션이 유지되지 않는다.
이러한 문제를 해결하기 위해 세션을 고정하는 Sticky Session을 사용한다.