로드 밸런싱 (Load Balancing)
● 로드밸런서(Load Balancer)는 서버에 가해지는 부하(=Load)를 분산(=Balancing) 해주는 장치 또는 기술을 통칭
● 클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치
● 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 상태를 유지
Q1. 로드밸런싱은 모든 경우에 항상 필요한가?
- 로드밸런싱 = 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술
- 서비스 제공 초기 단계에서는 적은 수의 클라이언트만 접속하기에 적은 서버로 응답이 가능
- 클라이언트 접속 수가 많아지면 적은 서버만으로는 정상적인 서비스가 불가능한 시점에 사용
● Scale-up과 Scale-out
○ Scale-up : 서버 자체의 성능을 확장하는 것
→ CPU로 비유하자면 2 core, 4 Thread에서 8 core, 16 Thread로 업그레이드하는 것
○ Scale-out : 기존 서버와 동일하거나 낮은 성능의 서버 두 대 이상 증설하는 것
→ CPU에서 2core, 4 Thread를 여러 개 사용하는 것
→ Scale-out 방식으로 서버를 증설하기로 결정했다면,
로드 밸런싱이 필요하다. (트랙픽 균등하게 분산하기 위해서!)
로드 밸런싱 알고리즘
● 라운드로빈 방식(Round Robin Method)
- 서버로 들어온 요청을 순서대로 돌아가며 배정하는 방식
- 클라이언트의 요청을 순서대로 분배함
- 여러 대의 서버가 동일한 스펙이고, 서버와의 연결(세션)이 오래 지속되지 않는 경우 적합
● 가중 라운드로빈 방식(Weighted Round Robin Method)
- 각각의 서버마다 가중치를 측정하고 가중치가 높은 서버에 클라이언트 요청을 우선적 배분
- 서버의 트래픽 처리 능력이 상이한 경우 사용되는 부하 분산 방식
● IP 해시 방식(IP Hash Method)
- 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
- 사용자의 IP를 해싱하여 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장
(Hashing : 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것 or 함수)
● 최소 연결 방식(Least Connection Method)
- 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽 배분
- 세션이 길어지거나, 서버에 분배된 트래픽들이 인정하지 않은 경우 적합
● 최소 리스폰타임(Least Response Time Method)
- 서버의 현재 연결 상태와 응답시간을 모두 고려하여 트래픽을 배분
(Response Time : 서버에 요청을 보내고 최초 응답을 받을 때까지 소요되는 시간)
- 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 로드를 배분
L4, L7 로드밸런싱
● L4 로드 밸런싱 = OSI 7 계층 중 Transport Layer (4 계층)
- 네트워크 계층(IP, IPX), 트랜스포트 계층(TCP, UDP)의 정보를 바탕으로 로드를 분산
- IP주소나 포트번호, MAC주소, 전송 프로토콜에 따라 트래픽을 나누는 것이 가능
● L7 로드 밸런싱 = OSI 7 계층 중 Application Layer (7 계층)
- 애플리케이션 계층(HTTP, FTP, SMTP)에서 로드를 분산
- HTTP 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 특정 서버에 트래픽 분산
→ 패킷의 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분해하는 것이 가능
- URL에 따라 부하를 분산시키거나, HTTP 헤더의 쿠기값에 따라 부하를 분산하는 등
클라이언트의 요청을 보다 세분화하여 서버에 전달할 수 있다.
- 특정한 패턴을 지닌 바이러스 감지하여 네트워크 보호가 가능
L4, L7 비교표
L4 로드밸런서 | L7 로드밸런서 | |
네트워크 계층 | Layer 4 전송계층(Transport Layer) |
Layer 7 응용계층(Application Layer) |
특징 | - TCP/UDP Port 정보를 바탕으로 밸런싱 | - TCP/UDP 포함하여 HTTP, URI, FTP의 파일명, 쿠기 정보 등을 바탕으로 밸런싱 |
장점 | - 데이터 안을 들여다보지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 높음 - 데이터의 내용을 복호화할 필요 없어 안전함 - L7 로드밸런서보다 비용이 적음 |
- 상위 계층에서 로드를 분산하기 때문에 휠씬 더 섬세한 라우팅이 가능 - 캐싱 기능을 제공 - 비정상적인 트래픽을 사전에 필터링할 수 있어 서비스 안정성이 높음 |
단점 | - 패킷의 내용을 살펴볼 수 업식 때문에 섬세한 라우팅 불가능 - 사용자의 IP가 수시로 바뀌는 경우라면 연속적인 서비스 제공 어려움 |
- 패킷의 내용을 복호화해야 하기에 높은 비용이 필요 - 클라이언트가 로드밸런서와 인증서를 공유해야하기 때문에 공격자가 로드밸런서를 통해 클라이언트에 데이터를 접근할 수 있어 보안 상의 위험성이 존재 |
참고 사이트
https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903
'IT > Network' 카테고리의 다른 글
[Network] 대칭키/비대칭키 암호화 (0) | 2025.01.09 |
---|---|
[네트워크] OSI 7계층 - 세션, 표현, 응용 (0) | 2024.12.27 |
[네트워크] OSI 7 계층 - 전송 계층 (1) | 2024.12.20 |
[네트워크] 서브넷 마스크 (0) | 2024.12.17 |
[네트워크] TCP/IP (2) | 2024.12.16 |