❗LoadBalancing이란?
여러 서버나 네트워크 장치로 들어오는 트래픽을 효율적으로 분산시켜 시스템의 성능, 안정성, 확장성을 향상시키는 기술이다. 이는 서버의 과부하를 방지하고 서비스의 가용성을 보장하는 데 중요한 역할을 한다.로드밸런싱은 다양한 방법과 기술을 사용하여 구현되며 주로 웹 서버, 애플리케이션 서버, 데이터베이스 서버 등에서 많이 사용된다.
❗로드밸런싱 알고리즘
- 라운드 로빈(Round Robin):
- 가장 기본적인 알고리즘으로, 각 서버에 순서대로 트래픽을 배분하는 방식
- 구현이 간단하고 모든 서버에 고르게 트래픽이 분배됨
- 서버의 성능 차이를 고려하지 않기 때문에 고성능 서버가 충분히 활용되지 못할 수 있음
- 가중치 라운드 로빈(Weighted Round Robin):
- 서버의 성능에 따라 가중치를 부여한 후 트래픽을 분배하는 방식
- 고성능 서버에는 더 많은 트래픽을, 저성능 서버에는 적은 트래픽을 할당
- 최소 연결(Least Connections):
- 현재 연결된 클라이언트 수가 가장 적은 서버로 트래픽을 분배
- 서버의 부하 상태를 실시간으로 모니터링하여 분배하므로 트래픽이 균등하게 처리됨
- 최소 응답 시간(Least Response Time):
- 응답 시간이 가장 빠른 서버로 트래픽을 분배하는 방식
- 응답 속도를 기준으로 서버의 부하를 예측할 수 있기 때문에 사용자의 대기 시간을 줄일 수 있음
- IP 해시(IP Hash):
- 클라이언트의 IP 주소를 해시로 변환하여 특정 서버에 고정적으로 트래픽을 보내는 방식
- 클라이언트가 항상 같은 서버에 연결되기 때문에 세션 유지가 필요한 경우에 유리
❗네트워크 레이어와 로드밸런서 종류
- L4 로드밸런서
- 전송 계층에서 이루어짐
- TCP/UDP 트래픽을 처리하며 IP 주소와 포트 정보를 기반으로 트래픽을 분배
- L7 로드밸런서
- 애플리케이션 계층에서 이루어짐
- HTTP/HTTPS 로드밸런싱
- 클라이언트가 웹 브라우저에서 HTTP 또는 HTTPS 요청을 보낼 때 로드밸런서가 요청을 분석하고 서버로 분배
- 로드밸런서는 HTTP 헤더, URI, 쿠키, SSL 정보 등 요청의 세부 내용을 바탕으로 특정 서버로 트래픽을 라우팅할 수 있음
- Nginx, HAProxy 같은 소프트웨어가 이를 담당
- 세밀한 트래픽 분산: 개별 서버로의 트래픽 분산을 최적화할 수 있음
- DNS 기반 로드밸런싱
- 클라이언트가 도메인 네임을 통해 요청을 보낼 때 DNS 서버가 여러 IP 주소를 반환해 트래픽을 분산
- 클라이언트는 반환된 IP 주소 중 하나로 접속
- 글로벌 트래픽 분산: 지리적 위치 또는 서버 부하에 따라 사용자를 가까운 서버로 연결시켜 네트워크 지연을 줄임
- DNS 기반 로드밸런싱으로 1차, HTTP/HTTPS 로드밸런싱으로 2차 트래픽 분산을 통해 동시 사용도 가능
- 현재 로드밸런서는 대부분 L7에서 작동
728x90
반응형
'🔻Computer Science > Network' 카테고리의 다른 글
[Network] DNS (0) | 2024.10.28 |
---|