Layer 4 Load balancing
Layer 4 Load balancer는 TCP 연결을 양쪽에 하나씩만 유지합니다.
그래서 모든 Segment들을 해당 연결로만 전달을 합니다.
1. Load balancer와 Backend 서버들간에 TCP Pool을 미리 연결해둡니다.
2. Client로부터 요청이 들어와서 TCP Connection을 합니다.
3. 연결된 양쪽의 TCP Connection을 통해서 데이터를 그대로 전달해줍니다.
예시
그래서 아래와 같이 동일 Client(Connection)의 요청에서는 동일한 TCP connection들을 사용하구요.
새로운 Client가 들어오면 또 다른 Connection을 사용하여 다른 백엔드 서버와 연결될 수 있습니다.
Layer 4의 장단점
장점 | 단점 |
단순한 구조입니다. | 단순하여 복잡한 동작은 할 수 없습니다. |
효율적입니다. (데이터 확인이 필요없습니다.) | Microservice에 적합하지 않습니다. |
더 보안이 좋습니다. | 각 connection 별로 묶여있습니다. |
어떤 protocol과도 사용할 수 있습니다. | 캐싱이 없습니다. |
하나의 TCP connection을 사용합니다. (NAT) | Protocol을 알 수 없습니다. |
Layer 7 Load balancing
반면 Layer 7 Load balancing은 조금 더 복잡합니다.
L7 LB에 연결하면 Protocol Specific 합니다.
특정 요청이 새로운 백엔드 서버로 전송됩니다.
그리고 이 요청은 하나 혹은 여러 segment일 수 있습니다.
바로 예시를 들어보겠습니다.
예시
1. LB와 Client가 연결합니다. 그리고 모든 데이터는 LB가 확인합니다.
그리고 1,2,3 세그먼트는 1번 서버로 전달됩니다.
2. 같은 연결에 대해서 5,6,7 segment를 전달합니다.
5,6,7 segment는 2번 서버로 전달됩니다. => Layer 4 LB와 다르게 다른 서버로 전송됩니다.
3. 다른 Client를 연결했습니다. 그리고 1,2,3 segment를 요청합니다.
그러면 다시 1번 서버가 1,2,3을 처리합니다.
Layer 7의 장단점
장점 | 단점 |
복잡한 동작이 가능합니다. | Expensive (데이터를 읽기 때문입니다.) |
마이크로 서비스에 적합합니다. | TLS certificate를 반드시 share해야합니다. |
Result를 Caching이 가능합니다. | Decrypts됩니다. (TLS를 끝냅니다) |
API Gateway logic과 같습니다. | Buffer가 필요합니다. |
Authentication이 가능합니다. | protocol에 대한 이해가 필요합니다. (http 등) |
'CS 지식 > 네트워크 기본 다지기' 카테고리의 다른 글
UDP와 DNS (1) | 2024.09.30 |
---|---|
TLS 1.2, 1.3 (4) | 2024.09.30 |
TCP Flow Control & Congestion Control (4) | 2024.09.23 |
TCP Segment 구조 (0) | 2024.09.23 |
TCP란 (+ TCP Fast Open) (0) | 2024.09.23 |
개발 및 IT 관련 포스팅을 작성 하는 블로그입니다.
IT 기술 및 개인 개발에 대한 내용을 작성하는 블로그입니다. 많은 분들과 소통하며 의견을 나누고 싶습니다.