둘 이상의 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