-
로드밸런싱CS/Network 2024. 9. 8. 22:45
로드밸런싱 종류
L4 로드밸런싱
- 전송 계층(TCP/UDP)에서 트래픽을 분산합니다. 빠르고 효율적이지만 애플리케이션 레벨의 세부 제어가 어렵습니다.
- 트래픽을 전송계층의 로드밸런서가 받아 서버들에게 적절히 나누어 주며
- L4 로드 밸런서는 네트워크 계층이나 전송 계층의 정보를 바탕으로 로드를 분산합니다.
L7 로드밸런싱
- L7도 마찬가지로 트래픽을 응용계층의 로드밸런서가 받아 서버들에게 나누어 줍니다.
- 응용 계층(HTTP/HTTPS)에서 트래픽을 분산하며, URL 패턴이나 쿠키와 같은 애플리케이션 데이터에 기반하여 트래픽을 세부적으로 제어할 수 있습니다.
- 특정 패턴의 바이러스를 감지해 네트워크 보호가 가능하며, 디도스와 같은 공격을 차단할 수 있어 보안 분야에서도 활용됩니다.
L4 스위치와 L7 스위치의 차이점
L4 스위치는 OSI 모델의 전송 계층에서 동작하며, IP 주소와 포트 번호를 기반으로 트래픽을 처리합니다. L7 스위치는 응용 계층에서 동작하며, HTTP 헤더, URL, 쿠키 등 애플리케이션 계층의 데이터를 기반으로 트래픽을 처리합니다. L4 스위치는 빠르고 간단한 로드 밸런싱에 적합하며, L7 스위치는 복잡한 트래픽 관리와 애플리케이션 인식 기능을 제공합니다.
L7 스위치의 장점
L7 스위치는 트래픽을 애플리케이션 계층에서 분석하고 처리할 수 있어, 웹 애플리케이션 방화벽(WAF) 기능, SSL 트래픽 처리, 콘텐츠 기반 라우팅 등을 지원합니다. 이를 통해 보다 정교한 트래픽 관리와 보안 정책을 구현할 수 있습니다.로드밸런싱 기법
1. 라운드 로빈 (Round Robin)
순차적으로 돌아가며 세션을 할당해주는 방식입니다.
요청이 오면 단순히 그 요청을 순서대로 서버에 분배해주는데 첫 번째 요청은 첫 번째 서버, 두 번째 요청은 두 번째 서버에 할당해 줍니다. 로드밸런싱 대상 서버의 스펙이 동일하고, 처리 시간 혹은 세션지속시간이 짧은 애플리케이션의 경우 이러한 방식이 적합합니다.
서버의 스팩이 동일 :
성능이 좋은지 안좋은지에 상관없이 균등하게 부하를 분산받기 때문에, 로드밸런싱에 관리되는 서버간의 성능차이가 클 경우보다 동일한 경우에 좋은 효율을 낼 수 있음.처리시간 혹은 세션 지속시간이 짧은 :
A 서버가 이전 요청을 아직 처리하고 있는 상황에서도 다음 차례가 A 서버라면 그대로 A 서버에 요청이 분배됨.
따라서 다른 서버들은 상대적으로 한가한 상태가 될 수 있다.
또한 부하가 많은 서버로 계속 요청이 들어오면 해당 서버의 응답 시간이 느려질 수 있습니다2. 가중 라운드 로빈 (Weighted Round Robin)
각 서버마다 가중치를 설정해두고 해당 가중치만큼 세션을 할당해주는 방식입니다. 특정 서버의 스펙이 좋다면 해당 서버에 가중치를 좀 더 주어 세션을 더 많이 할당해주고, 스펙이 좋지 않은 서버에는 가중치를 적게 두어 세션을 적게 할당해주는 방식입니다.
서버 간 성능 차이가 있을 때, 또는 특정 서버에 더 많은 트래픽을 할당해야 하는 경우에 사용. 라운드 로빈의 단점을 보완할 수 있음
3. 최소 연결 (Least Connection)
가장 적게 연결(가장 적은 세션)되어 있는 서버에 세션을 할당해주는 방식입니다.
서버에 분배된 세션들이 일정하지 않은 경우에 적합하며 부하를 줄이는 측면에서 많이 사용됩니다.
각 요청이 서버에 지속적으로 연결된 상태를 유지하거나, 요청의 처리 시간이 길고 불규칙한 애플리케이션에 사용
4. 최소 응답 (Least Response Time)
서버의 응답시간을 고려하여 세션을 할당해주는 방식입니다. 가장 짧은 응답 시간을 보이는 서버에 우선적으로 세션을 할당해주는 방식입니다.
5. 해시 (Hash)
특정 사용자는 특정 서버로만 할당시키는 방식입니다. 특정 IP주소나 포트를 갖는 사용자들은 특정 서버로만 세션을 맺도록 하는데 특정 IP주소나 포트에서 접속량이 특히 많을 때 관리가 편한 방식입니다.
특정 클라이언트가 항상 동일한 서버로 연결되어야 하는 경우(예: 세션 지속성을 유지해야 하는 상황).
6. DNS
사용자가 브라우저에 www.example.com을 입력하면, 컴퓨터는 DNS 서버에 이 도메인의 IP 주소를 요청합니다. 이때 DNS 서버는 단일 IP 주소가 아니라, 여러 개의 IP 주소를 가지고 있을 수 있으며 그 ip주소 중 하나를 응답 서버로 지정해주는 방식
- 라운드 로빈 : DNS 서버가 요청이 올 때마다 순서대로 다른 IP 주소를 반환
- 지리적 로드밸런싱: 사용자의 위치를 기반으로 가장 가까운 서버로 트래픽을 보내는 방식. 예를 들어, 한국에서 접속하는 사용자는 한국에 위치한 서버로, 미국에서 접속하는 사용자는 미국에 위치한 서버로 연결되게함. 이렇게 하면 응답 시간이 단축됨
헬스체크 :
DNS 로드밸런싱은 서버의 상태를 지속적으로 모니터링(헬스 체크)한다. 만약 특정 서버가 다운되거나 응답하지 않으면, 그 서버를 제외하고 다른 서버로 트래픽을 분산시킴. 이렇게 하면 서버 장애에도 불구하고 서비스의 연속성을 유지DNS 캐싱
DNS 서버 또는 클라이언트가 이전에 조회한 도메인 이름의 IP 주소를 일정 시간 동안 메모리에 저장해두는 것을 의미합니다. 이를 통해 동일한 도메인 이름에 대해 반복적으로 DNS 서버에 질의하지 않고, 캐시된 데이터를 사용하여 빠르게 IP 주소를 반환할 수 있습니다.
* TTL : DNS 레코드의 캐시 유효 기간
단점
DNS 레코드가 변경되었을 때, 이 변경 사항이 캐시가 만료되기 전까지는 반영되지 않는다는 점입니다.
예를 들어, 웹사이트의 IP 주소를 변경했는데 TTL이 24시간으로 설정되어 있다면, 최대 24시간 동안 사용자는 여전히 이전의 IP 주소로 접속하려고 시도할 수 있습니다. 이로 인해 사용자는 새 서버에 접속하지 못하고, 구 서버에 접속하거나 접속이 실패함'CS > Network' 카테고리의 다른 글
네트워크 인터페이스 / MAC 주소 (0) 2024.05.11 공인 IP 주소와 사설 IP 주소 / 포트 포워딩 (2) 2024.05.08 네트워크 연결 상태 확인 (1) 2024.05.07 REST, REST api, RESTful api, stateless (0) 2024.04.10