[CS/네트워크] 로드밸런서

배고픈 배극곰·2024년 5월 26일
0

기술면접

목록 보기
26/26

로드밸런싱

말 그대로, 부하(load)를 분산(balancing)시키는 기술이다.

왜 필요할까?

하나의 인터넷 서비스를 이용하는 client가 한두명이라면 서버는 여유롭게 사용자가 원하는 결과를 응답할수있다,

그러나 천만명의 client가 요청을 보낸다면??

서버는 좋은 퍼포먼스를 내기 어려울 것이다.

문제를 해결하는 방법에는

  • scale-up : 하드웨어 성능을 올리는 기법
  • scale-out : 여러대의 서버를 추가하여 확장하는 기법. (scale-out 방식으로 인프라를 증설하기로 하였다면, Load Balancing이 필요하다.)

다시 돌아와서, 로드밸런서는 이러한 로드밸런싱 기술을 제공하는 장치이다.

로드밸런서는 클라이언트와 애플리케이션 서버들 사이에 위치한다.

로드밸런서를 두어 대용량 트래픽을 분산시킨다면 서버는 최적의 퍼포먼스를 지속할 수 있고, 사용자에게 무중단 서비스를 제공할 수 있다.

로드밸런서의 역할

  • 인터넷에서 들어오는 트래픽을 가로채 어느 서버로 갈것인지 결정한다.(특정 서버의 부하를 덜어줌)
  • 서비스 중단 없이, 애플리케이션 서버들과 통신하여 서버를 추가할지 뺄지 결정한다. (유연성 제공)
  • Active한 서버에만 요청을 전송한다.(높은 가용성, 신뢰성)

로드밸런서의 기능

  • Health check : 서버들의 상태확인을 위해 주기적으로 서버에 요청 보냄. (L4체크는 TCP의 3-way handshaking을 통해, L7체크는 실제 웹페이지와 통신시도를 통해)
  • Tunneling : 데이터를 캡슐화하여 연결된 노드만 그 캡슐화된 패킷을 해제하여 볼 수 있게 함.
  • NAT : 사설 네트워크에서 사용하던 IP주소를 로드밸런서의 공인 IP주소로 변경.(반대과정도 포함)
  • DSR : 서버에서 클라이언트로 되돌아 갈때, 로드밸런서 거치지 않고 다이렉트로 가는 방식

로드밸런싱 알고리즘으로는 Round Robin, Weighted Round Robin, IP Hash, Least Connection, Least Response Time 등이 있다.

profile
마부작침 형설지공

0개의 댓글