로드 밸런서
로드 밸런서의 역할?
- 트래픽 분산: 로드 밸런서는 들어오는 네트워크 트래픽을 여러 대상 서버들 사이에 균형있게 분배합니다. 이를 통해 서버들의 부하를 고르게 분산시키고, 모든 서버의 성능을 최대한 활용할 수 있습니다.
- 부하 분석 및 성능 모니터링: 로드 밸런서는 각 서버의 상태와 성능을 지속적으로 모니터링하여 트래픽을 어떻게 분배해야 최적의 성능을 얻을 수 있는지 결정합니다. 이를 통해 가장 적절한 서버에 요청을 보내고 장애 서버를 우회하는 등 안정적인 서비스를 제공합니다.
- 고가용성과 장애 극복: 로드 밸런서를 통해 여러 대상 서버를 사용하면, 만약 하나의 서버에 장애가 발생하더라도 다른 정상적인 서버들이 트래픽을 처리할 수 있어 서비스의 중단을 최소화합니다. 이러한 기능으로 시스템의 가용성을 향상시킬 수 있습니다.
로드 밸런서의 위치: 로드 밸런서는 일반적으로 클라이언트와 서버 사이에 위치합니다. 클라이언트가 요청을 보낼 때 로드 밸런서가 요청을 받아서 분산된 서버들 중 하나로 요청을 전달합니다. 이후 해당 서버에서 요청을 처리하고, 결과를 다시 로드 밸런서를 통해 클라이언트에게 반환합니다. 이렇게 함으로써 클라이언트는 로드 밸런서를 통해 여러 서버에 접근하며, 서버는 로드 밸런서를 통해 클라이언트로부터의 요청을 수신합니다.
따라서 로드 밸런서는 네트워크 계층에서 트래픽을 분배하고 성능을 최적화하는 중요한 역할을 담당합니다.
✔️ Layer 4 로드밸런서: 이들은 OSI 모델의 4번째 계층인 전송 계층(Transport Layer)에서 동작합니다. Layer 4 로드밸런서는 IP 주소와 포트 정보를 기반으로 트래픽을 분산시키며, 주로 TCP와 UDP 프로토콜을 지원합니다. AWS의 Network Load Balancer(NLB)가 이에 해당합니다.
✔️ Layer 7 로드밸런서: 이들은 OSI 모델의 7번째 계층인 응용 계층(Application Layer)에서 동작합니다. Layer 7 로드밸런서는 HTTP/HTTPS 헤더, 쿠키, URL 등의 내용을 파악하여 트래픽을 분산시킵니다. 이런 세밀한 제어로 인해, Layer 7 로드밸런서는 웹 트래픽에 대해 보다 세밀한 로드 밸런싱을 제공할 수 있습니다. AWS의 Application Load Balancer(ALB)가 이에 해당합니다.