로드 밸런싱(Load Balancing)
로드 밸런싱은 네트워크 트래픽을 여러 서버에 분산시키는 역할을 하는 장치 또는 소프트웨어다.
서버의 부하를 줄이고, 가용성을 높이며, 응답 시간을 개선하는데 도움을 준다.
로드 밸런서의 종류
1. L4 Load Balancer
L4 로드 밸런서는 네트워크 계층에서 작동하며, IP 주소와 포트 정보를 기반으로 트래픽을 분산시켜준다. 그래서 단순하고 빠른 처리가 가능하지만, 패킷의 안쪽 내용까진 볼 수 없기 때문에 트래픽의 내용에 대한 깊은 작업은 제한적이다.
2. L7 Load Balancer
L7 로드 밸런서는 응용 프로그램 계층에서 작동하며, 패킷의 안쪽 내용까지 보고 로드밸런싱 할 수 있기 때문에 HTTP 헤더, 쿠키, 세션 정보 등을 기반으로 트래픽을 분산시킨다. 그래서 더 복잡하고 세밀한 로드밸런싱 정책을 구현할 수 있지만, 처리에 더 많은 리소스가 필요하다. 즉, L4는 빠르고 자원효율적이지만 L7에 비해서 세심한 작업은 불가능하다.
로드 밸런서 알고리즘
L4와 L7 로드 밸런서는 트래픽을 분산시키는 방법을 결정할 때 알고리즘을 사용한다.
L4 Load Balancer 알고리즘:
- Round Robin: 각 서버에 순차적으로 연결을 분산시키는 방법이다. 모든 서버가 동일한 처리 능력을 가지고 있을 때 유용하다.
- Least Connections: 현재 가장 적은 연결을 가진 서버에 새 연결을 할당하는 방법이다. 서버마다 처리 능력이 다를 때 쓰기 좋다.
- IP Hash: 클라이언트의 IP 주소를 해싱하여 특정 서버에 연결을 할당하는 방법이다. 이 방법은 세션 지속성을 필요로 하는 경우에 좋다.
L7 Load Balancer 알고리즘:
- URL Hash: 클라이언트의 요청 URL을 해싱하여 특정 서버에 연결을 할당하는 방법이다. 이 방법은 URL 기반의 세션 지속성을 필요로 할 때 효율적이다.
- HTTP Header: HTTP 헤더의 특정 값(예: 사용자 에이전트, 쿠키 등)을 기반으로 특정 서버에 연결을 할당하는 방법이다.
- Least Time: 가장 빠른 응답 시간을 가진 서버에 새 연결을 할당하는 방법이다. 이 방법은 서버의 성능과 네트워크 지연 시간을 모두 고려할 때 사용하기 좋다.
더 깊게 알아보고 싶다면, AWS의 로드 밸런싱에 대한 페이지에서 더 자세하고 많은 정보를 알 수 있다.
'Network, Web' 카테고리의 다른 글
[Network] IP 주소와 서브넷 마스크 (0) | 2023.07.11 |
---|---|
[Network] 4/7 TIL : 아키텍처의 구성요소들 (0) | 2023.04.07 |
[Network] HTTP와 HTTP의 여러버전들 (0) | 2023.04.06 |
[Network] 소켓과 포트의 의미와 차이점 (0) | 2023.04.06 |
[NetWork] nginx를 사용한 정적 웹페이지 호스팅 (0) | 2023.03.27 |