본문 바로가기

리눅스

SLB와 DSR의 개념, 차이점 및 사용 사례

728x90

SLB(Server Load Balancing)와 DSR(Direct Server Return)의 개념, 차이점 및 사용 사례

SLB와 DSR은 서버 로드 밸런싱에 사용되는 두 가지 주요 방식입니다. SLB는 로드 밸런서가 클라이언트와 서버 사이의 중간 역할을 수행하는 방식이고, DSR은 로드 밸런서가 클라이언트의 요청을 서버로 전송한 후, 서버의 응답을 클라이언트에게 직접 전달하는 방식입니다.

SLB, DSR 다이어그램

출처-https://t1.daumcdn.net/cfile/tistory/9954563359EFC4E01D?original

  • SLB(Server Load Balancing) 다이어그램

출처-http://www.redisgate.com/images/network/slb_proxy.png

  • DSR(Direct Server Return) 다이어그램

출처-http://www.redisgate.com/images/network/slb_l3dsr_dscp.png

SLB(Server Load Balancing)의 개념

SLB는 여러 개의 서버를 하나의 논리적인 서버로 구성하여, 클라이언트의 요청을 각 서버로 분산하는 방식입니다. SLB는 클라이언트와 서버 사이의 중간 역할을 수행하며, 클라이언트의 요청을 받아서 서버로 전송하고, 서버의 응답을 다시 클라이언트에게 전송합니다. 이 과정에서 SLB는 요청과 응답의 IP 주소와 포트 번호를 변경합니다.

DSR(Direct Server Return)의 개념

DSR은 로드 밸런서가 클라이언트의 요청을 서버로 전송한 후, 서버의 응답을 클라이언트에게 직접 전달하는 방식입니다. 이 과정에서 로드 밸런서는 요청의 IP 주소와 포트 번호를 변경하지 않습니다.

728x90

SLB와 DSR의 주요 차이점

특징 SLB DSR
로드 밸런서의 역할 클라이언트와 서버 사이의 중간 역할 클라이언트의 요청을 서버로 전송한 후, 서버의 응답을 클라이언트에게 직접 전달
요청과 응답의 IP 주소와 포트 번호 변경 변경 변경하지 않음
클라이언트의 서버 IP 주소와 포트 번호 필요 여부 필요하지 않음 필요함
클라이언트와 서버 간의 연결 관리 로드 밸런서에서 관리 클라이언트와 서버에서 직접 관리
로드 밸런서의 성능 영향 클라이언트와 서버 간의 연결 관리로 인한 성능 저하가 발생할 수 있음 클라이언트와 서버 간의 연결 관리가 필요하지 않기 때문에, 로드 밸런서의 성능 영향이 적음

SLB와 DSR의 사용 사례

  • SLB는 다음과 같은 경우 사용
    • 클라이언트가 서버의 IP 주소와 포트 번호를 알 필요가 없는 경우
    • 로드 밸런서가 클라이언트와 서버 사이의 연결을 관리해야 하는 경우
    • 로드 밸런서가 클라이언트의 요청을 암호화해야 하는 경우
      • 대규모 웹 애플리케이션
      • 애플리케이션 서버 클러스터
      • SSL 오프로딩 (SSL 해독 및 암호화를 로드 밸런서에서 수행)
      • 방화벽 앞에서 보안 강화
  • DSR은 다음과 같은 경우 사용
    • 클라이언트가 서버의 IP 주소와 포트 번호를 알고 있는 경우
    • 로드 밸런서가 클라이언트와 서버 사이의 연결을 관리할 필요가 없는 경우
    • 로드 밸런서가 클라이언트의 요청을 암호화할 필요가 없는 경우
      • 게임 서버
      • 캐싱 서버
      • 미디어 서버
      • 클라이언트와 직접 통신해야 하는 경우

결론적으로, SLB와 DSR은 각각 장단점이 있기 때문에, 특정 시스템의 요구 사항에 따라 적절한 방식을 선택해야 합니다.

추가 설명

  • SLB는 일반적으로 클라이언트와 서버 간의 연결을 관리해야 하는 경우 사용됩니다. 예를 들어, HTTP/2를 사용하는 경우, 클라이언트와 서버 간의 연결을 유지해야 합니다. 또한, 클라이언트의 요청을 암호화해야 하는 경우에도 SLB를 사용해야 합니다.
  • DSR은 일반적으로 클라이언트와 서버 간의 연결을 관리할 필요가 없는 경우 사용됩니다. 예를 들어, TCP를 사용하는 경우, 클라이언트와 서버 간의 연결을 유지할 필요가 없습니다.

 

참고URL

- redis gate : Load Balancing 부하 분산

- JK Archives Blog : Network #1 : Load Balancing : DSR (Direct Server Return)

- Daniels Networking Blog : CCDE – Load Balancer Designs

- fortinet : Configuring Direct Server Return

- VMware NSX Advanced Load Balancer : Direct Server Return on NSX Advanced Load Balancer

- Kubernetes Community Days Chennai : DIRECT SERVER RETURN WITH KUBERNETES

- Genius DM : DSR 구성을 통한 네트워크 아웃바운드 트래픽 감소

 

728x90