로드밸런서

이수찬·2023년 6월 1일
0

1. 로드밸런싱

  • 로드 밸런싱이란 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법이다.

  • 최근 애플리케이션들은 수많은 사용자들의 요청을 처리하고, 원하는 데이터를 빠르고 정확하게 반환해야 한다.
    이때 하나의 서버가 모든 요청을 처리하면, 서버의 부하가 심하게 걸려 애플리케이션의 속도가 느려질 수 있다.
    이런 서버 부하를 줄여주기 위해 로드밸런싱을 사용한다.

2. 로드밸런싱의 장점

2 - 1. 애플리케이션 가용성

  • 가용성 : 서버와 네트워크, 프로그램과 같은 정보 시스템이 정상적으로 작동하는 정도

  • 로드 밸런서를 사용하여, 여러개의 서버를 두어 백업 서버를 확보해 복구 기능을 사용할 수 있으며, 애플리케이션을 중지시키지 않고 서버를 관리하고 업그레이드할 수 있다.

2 - 2. 애플리케이션 확장성

  • 로드 밸런서를 활용하여 여러 서버로 트래픽을 지능적으로 전달하여 한 서버에 트래픽이 몰려 병목현상이 일어나는 것을 막는다.

  • 애플리케이션의 트래픽을 예측하여 필요한 경우 서버를 추가하거나 제거할 수 있다.
    (트래픽이 충분하지 않은데 불필요한 서버를 유지하는 것은 리소스 낭비이며, 트래픽이 충분히 많은데도 불구하고 적은 서버를 사용하면, 애플리케이션의 속도가 느려질 수 있다.
    이를 해결하기 위해 로드밸런서가 애플리케이션의 트래픽을 예측하여 서버를 추가하거나 제거하는 작업을 수행한다.)

2 - 3. 애플리케이션 보안

  • 로드밸런서로 애플리케이션에 보안 계층을 추가하여 트래픽을 모니터링하여 악성 콘텐츠를 미리 차단할 수 있다.

2 - 4. 애플리케이션 성능

  • 로드밸런서를 통해 서버에 균일한 트래픽을 전달하여 애플리케이션의 성능을 향상시킬 수 있다.
    또한 클라이언트 요청을 지리적으로 더 가까운 서버로 리다이렉션해 응답시간을 단축할 수 있다.

3. 로드밸런서는 어떻게 작동하는가

  • 사용자가 애플리케이션을 사용하기 위해 어떤 요청을 보내면, 요청은 로드밸런서로 이동한다.
    로드밸런서는 요청을 처리하기 가장 적합한 서버를 서버팜에서 찾아 요청을 라우팅한다.
    (일반적으로 하나의 애플리케이션은 여러 서버에서 실행되는데, 이런 서버 배열을 서버 팜이라 한다.)

4. 로드밸런싱의 유형

  • 애플리케이션 로드 밸런싱 : 사용자가 애플리케이션을 사용하기 위해 요청을 보내면, 요청 컨텐츠를 확인하여 가장 적합한 서버에게 트래픽을 리다이렉션한다.
    (URL에 따라 부하를 분산하거나, HTTP헤더, 쿠키와 같은 사용자 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능하다.)
    (L7 로드밸런싱으로 구현될 수 있다.)

  • 네트워크 로드 밸런싱 : IP주소 또는 네트워크 정보를 검사하여 트래픽을 최적으로 리다이렉션한다.
    (IP 주소나 포트 번호, MAC 주소, 전송 프로토콜 등에 따라 트래픽을 나누고 분산 처리하는 것이 가능하다.)
    (L4 로드밸런싱으로 구현될 수 있다.)

  • 글로벌 로드 밸런싱 : 지리적으로 분산된 여러 서버에서 발생하는데, 클라이언트가 요청을 보내면 지리적으로 가까운 서버에게 트래픽을 리다이렉션한다.
    지리적으로 가까운 서버에 장애가 발생한 경우 클라이언트의 지리적 영역 외부 서버에 트래픽을 리다이렉션할 수 있다.

  • DNS 로드 밸런싱 : DNS를 사용하여 로드 밸런싱을 하는 방식으로 도메인에 등록된 여러개의 IP주소 리스트 중 주로 라운드 로빈 방식으로 사용자에게 IP주소를 반환하는 방식이다.

5. 로드밸런싱 알고리즘

  1. 라운드 로빈 방식 : 서버에 요청이 들어온 순서대로 돌아가며 각 서버에 요청을 배정하는 방식

  2. 가중 라운드 로빈 방식 : 각 서버마다 가중치를 매겨 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분하는 방식

  3. IP 해시 방식 : 클라이언트의 IP주소를 특정 서버와 매핑해 요청을 처리하는 방식
    (사용자의 IP를 해싱하고 특정 서버와 매핑해 사용자는 항상 동일한 서버에게 요청을 보내도록 한다.)

  4. 최소 연결 방식 : 로드 밸런서가 트래픽을 배포하기 전에 서버의 현재상태를 검사해 가장 적은 연결상태를 보이는 서버에게 우선적으로 트래픽을 배분하는 방식

  5. 최소 응답 시간 방식 : 서버의 현재 연결 상태와 응답시간을 모두 고려해 트래픽을 배분하는 방식
    (가장 적은 연결상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 배분하는 방식)

0개의 댓글