로드 밸런싱
요즘 시대에는 웹사이트에 접속하는 인원이 급격하게 늘었기 때문에 모든 트래픽을 감당하기엔 1대의 서버로는 부족합니다.
대응 방안으로 하드웨어의 성능을 올리는 것(Scale-up)과 여러 대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있습니다.
하드웨어 향상 비용이 더욱 비싸기도 하고, 서버가 여러 대 존재하면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out이 효과적입니다.
이때, 여러 서버에게 균등하게 트래픽을 분산시켜주는 것이 바로 로드 밸런싱입니다.
로드 밸런싱은 분산식 웹 서비스로, 여러 서버에 부하(Load)를 나누어주는 역할을 합니다.
로드 밸런서를 클라이언트와 서버 사이에 두고, 부하가 일어나지 않도록 여러 서버에 분산시켜주는 방식입니다.
서비스를 운영하는 사이트의 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서로 관리해주면 웹 서버의 부하를 해결할 수 있습니다.
로드 밸런서가 서버를 선택하는 방식
- 라운드 로빈
- CPU 스케줄링의 라운드 로빈 방식을 활용합니다.
- Least Connections
- 연결 갯수가 가장 적은 서버를 선택합니다.
- 트래픽으로 인해 세션이 길어지는 경우 권장합니다.
- Source
- 사용자 IP를 해싱하여 분배합니다.
- 사용자가 항상 같은 서버로 연결되는 것을 보장합니다.
로드 밸런서가 장애를 대비하는 방식
로드 밸런서에 문제가 생길 수 있기 때문에 로드 밸런서를 Active 상태와 Passive 상태로 이중화하여 대비합니다.
- 이중화된 로드 밸런서들은 서로 Health Check를 합니다.
- 메인 로드 밸런서가 동작하지 않으면 가상 IP는 여분의 로드 밸런서로 변경됩니다.
- 이후에는 여분의 로드 밸런서로 운영하게 됩니다.
728x90
반응형
'CS 지식 > 네트워크' 카테고리의 다른 글
[CS] 브라우저로 웹사이트에 접속할 때 일어나는 일 (0) | 2023.12.25 |
---|---|
[CS] HTTP, HTTPS 그리고 SSL (0) | 2023.12.13 |
[CS] 대칭키와 공개키 (0) | 2023.12.11 |
[CS] 3-Way Handshake와 4-Way Handshake (0) | 2023.12.11 |
[CS] UDP (0) | 2023.12.10 |