[CS 스터디] 2. 네트워크 - 로드 밸런싱(Load Balancing)

채채·2023년 12월 20일
0

CS 스터디

목록 보기
19/21

둘 이상의 CPU or 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것

요즘 시대에는 웹사이트에 접속하는 인원이 급격히 늘어나게 됨
이 사람들에 대한 모든 트래픽을 감당하기에 1대의 서버는 부족

대응 방안
1. 하드웨어 성능 올리기 (Scale-up)
2. 여러 대의 서버가 나눠서 일하도록 만드는 것 (Scale-out)

1번이 더 비쌈 & 서버 여러대일 시 무중단 서비스 제공 용이 => Scale-out이 효과적!

로드 밸런싱

  • 여러 서버에 균등하게 트래픽 분산하는 것
    분산식 웹 서비스: 여러 서버에 부하(Load)를 나눠주는 역할
    클라이언트 <- Load Balancer -> 서버
    서비스 운영 사이트의 규모에 따라 웹 서버를 추가로 증설하며 로드 밸런서로 관리해주면 웹 서버 부하 해결 가능

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

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

로드 밸런서 장애 대비

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

Active 상태와 Passive 상태

출처

Tech Interview

profile
성장하는 사람

0개의 댓글