Load Balancer의 필요성
client가 한두명일 경우 server는 여유롭게 사용자가 원하는 결과를 응답 할 수 있다.
하지만 clientrk 수천만면이라면
server는 모든 client의 응답을 해주려고 해도 노력하지만 결국엔 지치게 되어 동작을 멈추게 된다.
해결방안
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로 병경된다.