Load Balancer

·2022년 8월 20일
0

로드 밸런서를 알기 전에 상황을 가정해 볼 필요가 있다.

만약 클라이언트가 한두 명인 경우에는 어떨까.
그렇다면 서버는 여유롭게 사용자가 원하는 결과를 응답해 줄 수 있다.

하지만 클라이언트가 한두 명이 아닌 수천만 명이라면?
서버는 모든 사람들의 응답을 해 주려고 노력하지만 결국에는 동작을 멈추게 된다.


이런 이슈를 해결하기 위해서는?

  • Scale-up: 서버가 더 빠르게 동작하게 하기 위해 하드웨어 성능을 올리는 방법
  • Scale-out: 하나의 서버보다는 여러 대의 서버가 나눠서 일을 하는 방법

Scale-out의 장점으로는 하드웨어를 향상하는 비용보다 서버 한 대 추가 비용이 더 적고 여러 대의 서버 덕분에 무중단 서비스를 제공할 수 있다는 게 있다.

여기서 여러 대의 서버에게 균등하게 트래픽을 분산시켜 주는 역할을 하는 게 로드 밸런서이다.


Load Balancing이란?

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


로드 밸런서의 주요 기능으로는 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기인 NAT(Network Address Translation)이 있다.
또 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념이고 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있는 Tunneling이 있다.
마지막으로 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념인 DSR(Dynamic Source Routing protocol)도 있다.


Load Balancer가 서버를 정하는 기준은?

  • Round Robin
    단순히 Round Robin으로 분산하는 방식이다.

  • Least Connections
    연결 개수가 가장 적은 서버를 선택하는 방식이다.
    트래픽으로 인해 세션이 길어지는 경우 권장하는 방식이다.

  • Source
    사용자의 IP를 Hashing하여 분배하는 방식이다.
    사용자는 항상 같은 서버로 연결되는 것을 보장한다.


Load Balancer의 장애 대비 방법은?

Load Balancer를 이중화하여 장애를 대비할 수 있다.


참고 : 로드 밸런서란?

profile
파워블로거입니다 주인이 힘이 센 건 아니고 그냥 하고 싶습니다

0개의 댓글