Load Balancing
인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리해 서버의 로드 증가, 부하, 속도 저하 등을 고려해 적절하게 분산처리하여 해결해주는 서비스
▶ Load Balancer : 여러 대의 Server에 균등하게 Traffic을 분산시켜주는 것
Client가 원하는 결과를 응답하기 위해 Web Server --> Database를 통해 결과를 반환
하지만 Client가 한 두명이 아닌 n천,만명이라면
위 그림처럼 Server는 전부 응답을 해주고 싶지만 로드증가로 인한 부하로 속도 저하 및 동작을 멈추게 된다.
문제 해결을 위해서는
- Scale-Up : Server가 더 빠르게 동작하기 위해 하드웨어 성능을 올림
- Scale-Out : 하나의 Server 보다 여러 대의 Server가 나눠 일을 함
Scale-Out 의 장점
- 하드웨어 향상 비용보다 서버 한대 추가 비용이 더 적다.
- 여러 대의 Server 덕에 무중단 서비스 제공이 가능하다.
Load Balancing 알고리즘
Round Robin Method
서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
Client 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 갖고 있다.
세션이 오래 지속되지 않는 경우에 활용 적합
Weighted Round Robin Method
각 서버마다 가중치를 매기고 가중치가 높은 서버에 Client 요청을 우선적으로 배분한다.
주로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 부하 분산 방식
ex) A Server 5라는 가중치 / B Server 2라는 가중치
LB는 RR방식으로 A Server에 5개 B Server에 2개의 요청을 전달한다
IP Hash Method
Client의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
사용자의 IP를 Hashing, 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것
로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장
Least Connection Method
요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분
자주 세션이 길어지거나 서버에 분배된 트래픽이 일정하지 않은 경우 적합
Least Response Time Method
서버의 현재 연결 상태와 응답시간을 모두 고려해 트래픽을 배분함
가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 로드를 배분하는 방식
네트워크 통신은 OSI 7 Layer를 기준
대표적으로 L4, L7 가 존재
L4 Load Balancer
- Network Layer나 Transport Layer의 정보를 바탕으로 로드를 분산한다.
- 즉, IP나 TCP/UDP를 기준
- IP주소, Port 번호, MAC 주소, 전송 프로토콜에 따라 트래픽을 나누는 것이 가능
L7 Load Balancer
- Application Layer에서 로드를 분산한다
- HTTP, FTP, SMTP ...기준
- HTTP 헤더, 크키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽을 분산
- 패킷의 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분배
- URL에 따라 부하를 분산하거나 HTTP 헤더의 쿠키 값에 따라 부하를 분산
- 클라이언트 요청을 보다 세분화해 서버에 전달
- 특정 패턴을 지닌 바이러스를 감지해 네트워크를 보호 가능
- Dos/DDoS와 같은 비정상 트래픽을 필터링 가능
'Infra > CS' 카테고리의 다른 글
[Network] DNS (0) | 2024.01.08 |
---|---|
[Network] NAT/PAT (1) | 2024.01.05 |
[Network] 방화벽 (4) | 2024.01.04 |
OSI 7 Layer (0) | 2023.05.05 |