Load Balancer

박성운·2022년 8월 22일
0

Load Balancer의 필요성

client가 한두명일 경우 server는 여유롭게 사용자가 원하는 결과를 응답 할 수 있다.
하지만 clientrk 수천만면이라면

server는 모든 client의 응답을 해주려고 해도 노력하지만 결국엔 지치게 되어 동작을 멈추게 된다.

해결방안

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

scale-out의 장점은 무엇이 있나?
-하드웨어 향상하는 비용보다 서버 한대 추가 비용이 더 적다
-여러 대의 Server 덕분에 무중단 서빕를 제공할 수 있다.

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

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

L2 - Mac 주소를 바탕으로 Load Balancing한다.
L3 - IP주소를 바탕으로 Load Balancing한다.
L4 - Transport Layer Levle 에서 load balancing을 합니다.

HTTP
x-Forwarded-For -> Http또는 Https 로드 밸런서를 상용할 때 크라이언크의 IP 주소를 식별하는 데 도우믕ㄹ 줍니다.
x-Forwarded-Proto -> 클라이언트가 로드 밸런서 연결에 사용한 프로토콜을 식별하는 데 도움을 준다.
x-Fowarded-Port ->
크라이언트가 로드 배런서 연겨에 사용한 포트를 식별하는 데 도움을 준다.

Load Balancer각 server를 선택하는 기준
-round robin
단순히 round robin으로 분산하는 방식
-Least Connnestions
연결 개수가 가장 적은 서버를 선택하는 방식
-source
사용자의 IP를 Hashing하여 분배한다.
사용자는 항상 같은 서버롤 연걸되는 것을 보장한다.

Load Balancer를 이중화하여 장애를 막는다.
Mian Load Balancer가 작동을 하지 않는 경우 가상 IP는 여분의 Load Balancer로 병경된다.

0개의 댓글