네트워크, 통신

로드 밸런서

창욱씨 2020. 3. 20. 18:13

로드 밸런싱의 개념

로드 밸런싱이란 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때, 여러 대의 서버가 각 서버의 로드율 증가, 부하량, 속도 저하 등을 고려하여 적절하게 분산처리 해주는 것을 의미합니다.

로드 밸런싱의 주요 기능

NAT

사설 IP 주소를 공인 IP 주소로 바꾸는 통신망의 주소 변조기

Tunneling

인터넷 상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념으로 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있음

DSR(Dynamic Source Routing Protocol)

서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 클라이언트의 IP 주소로 설정해 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

로드 밸런서의 종류

L2

  • Mac 주소를 바탕으로 로드 밸런싱을 합니다.
  • 장점: 가격이 저렴하고 구조가 간단하며 신뢰성이 높습니다.
  • 단점: Broadcats 패킷에 의해 성능 저하가 발생하고 상위레이어 프로토콜 기반 스위칭이 불가능합니다.

L3

  • IP 주소를 바탕으로 로드 밸런싱을 합니다.
  • 장점: Broadcat 트래픽으로 전체 성능 저하를 방지합니다.
  • 단점: 특정 프로토콜을 이용해야 스위칭이 가능합니다.

L4

  • Transport Layer(IP와 Port)를 바탕으로 로드밸런싱을 합니다.
  • 장점: Port 기반 스위칭을 지원하고, VIP를 이용해 여러 대를 한 대로 묶어 부하를 분산합니다.

L7

  • Application Layer(사용자의 Request)에서 로드 밸런싱을 합니다.

로드 밸런서가 서버를 선택하는 기준

Round Robin

  • 요청을 순서대로 각 서버에 균등하게 분배하는 방식
  • 서버 커넥션 수나 응답시간에 상관없이 모든 서버를 동일하게 처리

Least Connections

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

Source

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

Weighted Least Connections

  • 서버에 부여된 가중치 값을 기반으로 Connection 수와 함께 고려하여 할당

Fastest Response Time

  • 가장 빨리 응답하는 서버에 요구를 연결하는 방법
  • 응답시간은 각 서버가 패킷 형태의 요구를 송수신하는데 걸리는 시간을 측정

로드 밸런서의 장애 대비

  • 로드 밸런서를 이중화하여 장애에 대비
  • 이중화된 로드 밸런서들은 서로 Health Check를 함
  • Main 로드 밸런서가 동작하지 않으면 가상IP는 여분의 로드 밸런서로 변경

728x90