로드 밸런싱(Load Balancing)
로드밸런싱은 여러 대의 서버에 부하를 균등하게 분산시켜 성능을 향상시키는 기술이다.
로드 밸런서는 트래픽 분산 기능을 수행하여 서버 부하를 분산하고, 가용성을 높이며 확장성을 보장한다.
로드 밸런서는 L4 전송 계층과 L7 응용 계층에서 동작할 수 있다.
L4 로드 밸런싱은 OSI 모델의 전송 계층에서 동작하며, IP 주소 및 포트 번호를 기반으로 트래픽을 분산한다.
L4 로드 밸런서는 서버에 대한 요청을 수신하면 요청에 따라 가장 부하가 적은 서버를 선택하여 연결을 전달한다.
이렇나 방식은 네트워크 대역폭이 큰 경우에 유용하다.
L7 로드 밸런싱은 OSI 모델의 응용 계층에서 동작하며, 트래픽의 헤더 정보를 분석하여 트래픽을 분산한다.
L7 로드 밸런서는 HTTP, HTTPS, SMTP, FTP, DNS 등의 응용 프로토콜에서 헤더 정보를 분석하여 트래픽을 분산한다.
예를 들어, HTTP 요청 헤더의 URI, 쿠키, 사용자 에이전트 등의 정보를 기반으로 트래픽을 분산시킨다.
L7 로드 밸런싱은 L4 로드 밸런싱보다 더 정교한 방식으로 트래픽을 분산하기 때문에 보다 다양한 기능을 수행할 수 있다.
예를 들어, 세션 유지, URL 기반 라우팅, SSL 인증서 관리 등의 기능을 수행할 수 있다.
하지만 L7 로드 밸런싱은 L4 로드 밸런싱보다 CPU나 메모리 등의 자원을 많이 사용하기 때문에,
성능에 대한 고민이 필요하다.
로드 밸런싱 알고리즘(Load Balancing Algorithms)
로드 밸런싱 알고리즘은 다수의 서버에 대한 요청을 분산시키기 위한 방법을 말한다.
로드 밸런싱은 일반적으로 서버 과부하를 방지하고 대규모 트래픽 처리를 위해 사용된다.
여러 가지 로드 밸런싱 알고리즘이 존재하지만, 가장 일반적인 알고리즘들은 다음과 같다.
- Round Robin
- 모든 서버에 대한 요청을 균등하게 분산하는 가장 간단한 알고리즘이다.
- 요청을 받을 때마다 다음 서버로 요청을 전달한다.
- Least Connections
- 현재 연결 수가 가장 적은 서버로 요청을 전달한다.
- 서버 부하가 더 나누어지도록 요청을 분산할 수 있다.
- IP Hash
- 요청이 들어온 클라이언트 IP 주소를 기반으로 요청을 분배한다.
- 같은 IP 주소의 클라이언트는 항상 같은 서버로 요청이 전달되기 때문에, 연결 상태를 유지할 수 있다.
- Random
- 요청을 받을 때마다, 임의의 서버로 요청을 전달한다.
- 균등 분산을 위한 기본적인 알고리즘이다.
- Weighted Round Robin
- 서버 간 우선순위를 부여하고, 가중치를 기반으로 요청을 분배한다.
- 가중치가 높은 서버는 더 많은 요청을 받게 된다.
- Least Response Time
- 서버의 응답 시간을 측정하고, 가장 빠른 응답 시간을 가진 서버로 요청을 전달한다.
- 서버 응답 시간을 측정하기 위해, ICMP ping 또는 TCP handshake를 사용할 수 있다.
이러한 알고리즘들은 L4 전송계층에서도 사용할 수 있으며, L7 응용계층에서도 사용할 수 있다.
일반적으로 L4 로드 밸런싱은 TCP와 UDP와 같은 전송 계층 프로토콜을 기반으로 하며,
L7 로드 밸런싱은 HTTP와 같은 응용 계층 프로토콜을 기반으로 한다.
'Network' 카테고리의 다른 글
Windows Server 2016 계정 관련 (0) | 2023.05.12 |
---|---|
Windows Server 2016 소개와 주요 기능 (0) | 2023.05.12 |
게이트웨이(Gateway) (0) | 2023.05.11 |
라우터(Router) (0) | 2023.05.11 |
스위치(Switch) (0) | 2023.05.11 |