Load Balancer?? 뭔데??

0
post-thumbnail

1. 로드 밸런서(Load Balancer)

  • 클라이언트가 한 두명인 경우에는 Server는 여유롭게 사용자가 원하는 결과를 응답 해줄 수 있다. 물론, 모든 사람들의 응답을 해주려고 노력하는데 결국 지치게 되어 있다.

  • 이러한 문제를 해결하기 위해
    1. Scale-up : Server가 더 빠르게 동작하기 위해 하드웨어 성능을 올린다.
    1. Scale-out : 하나의 Server보다는 여러 대의 Server가 나눠서 일을 한다.
  • Scale-out의 장점
    1. 하드웨어 향상하는 비용보다 서버 한대 추가 비용이 더 적다.
    1. 여러대의 Server 덕분에 무중단 서비스를 제공할 수 있다.
  • 따라서, 여러대의 Server에게 균등하게 Traffic을 분산시켜주는 역할을 하는 것이 Load Balancer이다.
  • 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결 해주는 서비스이다.

2. 기능

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

3. 종류

  • L2 : Mac주소를 바탕으로 Load Balancing한다.
  • L3 : IP주소를 바탕으로 Load Balancing 한다.
  • L4 : Transport Layer(IP와 Port) level에서 Load Balancing을 한다.(TCP, UDP)
  • L7 : Application Layer(사용자의 Request) Level에서 Load Balancing을 한다.(HTTP, GTTPS, FTP)

마무리

  • 로드 밸런서 서버 선택
    1. Round Robin : 단순히 Round Robin으로 분산하는 방식
    1. Least Connections : 연결개수 가장 적은 서버를 선택하는 방식, 트래픽으로 인해 세션이 길어지는 경우 권장
    2. Source : 사용자의 IP를 Hashing하여 분배하는 방식, 사용자는 항상 같은 서버로 연결되는 것을 보장
  • 장애가 났을 경우
    1. Load balancer를 이중화하여 장애를 대비
    1. 이중화된 Load balancer들은 서로 Health Check한다.
    2. Main Load Balancer가 동작하지 않으면 가상IP(VIP, Virtual IP)는 여분의 Load Balancer로 변경
    3. 여분의 Load Balancer로 운영
profile
끝날때 까지 끝난게 아니야. 결국 내가 이겨!

0개의 댓글