이 기사 education.io ~에서 Grokking 현대 시스템 설계 인터뷰 과정의 로드 밸런서 장 내용 요약입니다.
로드 밸런싱이란 무엇입니까?
일반적인 데이터 센터는 초당 최대 백만 건의 요청을 받을 수 있습니다. 이러한 요청을 처리하려면 수천 또는 수십억 대의 서버가 함께 작업하여 로드를 공유해야 합니다.
로드 밸런서(LB)는 클라이언트 요청을 사용 가능한 서버에 고르게 분배하는 역할을 합니다. 이렇게 하면 서버가 과부하되거나 죽어가는 것을 방지할 수 있습니다.
로드 밸런싱 계층은 방화벽 다음으로 데이터 센터에서 가장 먼저 만나는 것입니다. 서비스가 초당 수백 또는 수천 건의 요청만 처리하면 되는 경우 로드 밸런서가 필요하지 않을 수 있습니다. 그러나 클라이언트 요청이 증가함에 따라 로드 밸런서는 다음 기능을 제공해야 합니다.
- 확장성
- 서버를 추가하여 앱 또는 서비스의 용량을 원활하게 늘릴 수 있어야 합니다.
- 유효성
- 여러 서버가 실패하거나 장애가 발생하더라도 시스템은 계속 사용할 수 있어야 합니다. 로드 밸런서의 기능 중 하나는 서버 오류 및 장애를 숨기는 것입니다.
- 성능
- 로드 밸런서는 로드가 적은 서버로 요청을 보내 사용자에게 더 빠른 응답 시간을 제공합니다. 이는 성능뿐만 아니라 자원 활용도도 향상시킵니다.

로드 밸런서 배치
일반적으로 LB는 클라이언트와 서버 사이에 존재합니다. 요청은 LB 계층을 통해 서버로 이동하고 다시 클라이언트로 이동합니다. 그러나 로드 밸런싱이 작용하는 다른 지점이 있습니다.
세 개의 알려진 서버 그룹이 있다고 가정합니다. 웹, 앱 및 db 서버 그룹이라고 가정합니다. 이러한 서버에 트래픽을 분산하기 위해 다음과 같이 로드 밸런서를 사용할 수 있습니다.
- 앱 최종 사용자와 웹 서버/앱 게이트웨이 사이에 LB 배포
- 비즈니스 로직을 실행하는 웹 서버와 애플리케이션 서버 사이에 LB 배치
- App 서버와 DB 서버 사이에 LB 배치

실제로 로드 밸런서는 여러 서버 인스턴스가 있는 두 서비스 사이에 배치할 수 있습니다.
로드 밸런서에서 제공하는 서비스
또한 LB는 다음과 같은 서비스를 제공합니다.
- 건강 체크
- LB는 하트비트 프로토콜을 사용하여 서버의 상태와 안정성을 모니터링하여 사용자 경험을 더욱 향상시킵니다.
- TLS 종료
- LB는 클라이언트와의 TLS 종료를 처리하여 최종 서버의 로드를 줄입니다.
- 예측 분석
- LB는 LB를 통과하는 트래픽에 대한 분석 또는 통계를 통해 트래픽 패턴을 예측할 수 있습니다.
- 사람의 개입 감소
- LB 자동화는 오류 문제 해결에 소요되는 시스템 관리 시간을 줄입니다.
- 서비스 감지
- LB는 서비스 등록을 쿼리하고 클라이언트의 요청을 적절한 호스팅 서버로 전달할 수 있습니다.
- 보안
- LB는 OSI 모델의 여러 계층(3,4,7)에서 DoS(서비스 거부)와 같은 공격을 완화할 수 있습니다.
전반적으로 LB는 시스템 설계 측면에서 유연성, 신뢰성, 이중화 및 효율성을 제공합니다.
묻다
: 로드 밸런서가 실패하면 어떻게 됩니까? 로드 밸런서가 SPOF가 아닙니까?
→ 로드 밸런서는 일반적으로 재해 복구 수단으로 쌍으로 배포됩니다. 로드 밸런서가 다운되고 아무것도 복구할 수 없는 경우 전체 서비스가 다운됩니다. 일반적으로 고가용성을 유지하기 위해 기업에서는 로드 밸런서가 하트비트 통신을 통해 서로의 상태를 확인할 수 있도록 로드 밸런서의 클러스터를 사용합니다. 기본 LB에 장애가 발생하면 백업 LB가 바통을 이어받을 수 있습니다. 그러나 전체 클러스터가 다운되는 긴급 상황에서는 수동 경로 재지정이 필요할 수 있습니다.