[CS] Network - 로드 밸런싱

ZenTechie·2023년 5월 9일
0

CS

목록 보기
6/16

로드 밸런싱(Load Balancing)

요즘 시대에는 웹사이트에 접속하는 인원이 급격히 늘어나게 되었다.

따라서 이 사람들에 대해 모든 트래픽을 감당하기엔 1대의 서버로는 부족하다.
대응 방안으로 하드웨어의 성능을 올리거나(Scale-up) 여러대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있다.

Scale-out의 장점은?

  • 하드웨어 향상하는 비용보다 서버 한대 추가 비용이 더 적다.
  • 여러 대의 Server 덕분에 무중단 서비스를 제공할 수 있다.

Load Balancer란?

여러 대의 Server에게 균등하게 Traffic을 분산시켜주는 역할을 하는 것이 Load Balancer 입니다.

Load Balancing이란?

하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결해주는 서비스이다.

하드웨어 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out효과적이다.

즉, 여러 서버에게 균등하게 트래픽을 분산시켜주는 것이 바로 로드 밸런싱이다

로드 밸런싱분산식 웹 서비스로, 여러 서버에 부하(Load)를 나누어주는 역할을 한다.
Load Balancer클라이언트와 서버 사이에 두고, 부하가 일어나지 않도록 여러 서버에 분산시켜주는 방식이다.

서비스를 운영하는 사이트의 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서로 관리해주면 웹 서버의 부하를 해결할 수 있다.

로드 밸런서가 서버를 선택하는 방식

  • 라운드 로빈(Round Robin) : CPU 스케줄링의 라운드 로빈 방식 활용
  • Least Connections : 연결 개수가 가장 적은 서버 선택 (트래픽으로 인해 세션이 길어지는 경우 권장)
  • Source : 사용자 IP를 해싱하여 분배 (특정 사용자가 항상 같은 서버로 연결되는 것 보장)

Load Balancer 장애 대비

서버를 분배하는 Load Balancer에 문제가 생길 수 있기 때문에 Load Balancer이중화하여 대비한다.

Active 상태와 Passive 상태


[출처]

https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Network/%EB%A1%9C%EB%93%9C%20%EB%B0%B8%EB%9F%B0%EC%8B%B1(Load%20Balancing).md

profile
데브코스 진행 중.. ~ 2024.03

0개의 댓글