티스토리 뷰

Languages/엉터리번역

Nginx - 로드밸런싱이란?

prograsshopper_ 2021. 6. 3. 14:24

 로드밸런싱은 서버 팜 혹은 서버 풀이라고 불리는 백엔드 서버들의 그룹에 네트워크 트래픽을 효과적으로 분산하는 방법을 말한다.
 트래픽이 높은 최근의 웹사이트들은 동시에 수많은 유저나 클라이언트로부터 들어오는 이미지, 비디오, 어플리케이션 데이터 따위의 요청을 빠르면서 동시에 안정적으로 제공해줘야 한다.  이런 대용량을 충족시키는 비용적으로 효율적인 확장을 위해, 최근의 컴퓨팅들의 실행은 보통 더 서버를 추가하는 것이다.

 로드밸런서는 당신의 서버 앞에 앉아 "교통 경찰"처럼 행동하는데, 클라이언트상에서 들어오는 요청들을 어떤 서버에도 과도하게 몰리지 않는 동시에, 모든 서버가 속도와 용량 면에서 극대화하는 방식으로 이 요청을 충족시키도록 라우팅한다. 만약 한 서버가 다운되면, 로드밸런서는 남은 서버들로 트래픽을 리다이렉팅한다. 만약 서버그룹에 새로운 서버가 추가되면, 로드밸런서는 자동적으로 요청을 새 서버로 보낸다.

 

 이 방법으로, 로드밸런서는 아래의 기능들을 수행한다.

  • 클라이언트 오구사항들을 분산하거나 다수의 서버로 네트워크가 효율적으로 로드되도록 한다.
  • 오직 온라인상인 서버로 요청을 보냄으로서 높은 사용성과 신뢰성을 보장한다.
  • 수요에 따라서 서버를 추가하거나 제외하는 것에 대한 유연성을 제공한다.


로드밸런싱 알고리즘

각각의 로드 밸런싱 알고리즘은 각각 다른 장점이 있으므로 본인이 필요한 것에 따라 고르면 된다.

  • Round Robin: 서버들의 그룹으로 요청들이 순차적으로 분산된다,
  • Least Connections: 새 요청은 현재 클라이언트와 아주 적은 커넥션을 가지고 있는 서버로 전송된다. 각 서버와 관련된 컴퓨팅 용량은 어떤 서버가 가작 적은 커넥션을 가지고 있는가에 따른다.
  • Least Time: 요청이 전송되는 서버는 가장 빠른 반응시간과 가작 적은 활성화된 커넥션을 결합한 공식에 따라 선정된다, NGINX Plus에선 제외되었다.
    Hash: 클라이언드IP주소나 요청URL등과 같이 당신이 정의한 키에 따라 요청들이 분산된다. 
  • IP Hash: 클라이언트의 IP 주소가 어떤 서버로 요청이 전송될지 결정한다.
  • Random with Two Choices: 랜덤으로 두 서버를 고르고, 가장 적은 커넥션 알고리즘을 적용하여 선정된 서버로 요청을 전송한다.

로드밸런싱의 장점

  • 다운타임의 감소
  • 확장성
  • 여분
  • 유연성
  • 효율성

이 외의 관련 토픽

세션 영속성

 유저 세션에 대한 정보는 종종 브라우저에 로컬로 저장된다. 예를 들어 쇼핑카트 어플리케이션에서 유저의 카드에 들어있는 아이템은 유저가 구매하기 전까지 브라우저 레벨에서 저장된다. 서버가 쇼핑 세션 중간에 클라이언트에게서 요청을 받는걸로 변경하면, 퍼포먼스 문제가 새익거나 트랜잭션의 실패가 생긴다. 이런 경우에, 세션이 지속되는 동안에 클라이언트로부터 오는 모든 요청은 같은 서버로 전송되는 것이 필수다. 이것을 세션 영속성이라고 한다
 뛰어난 로드밸런서는 세션 영속성 역시 다룰수있다. 세션 영속성의 다른 유즈케이스로는 퍼포먼스를 극대화하기 위해 업스트림 서버가 캐시상에 유저에게서 요청된 정보를 저장하는 방법이다 서버를 변경하는 것은 정보가 두번 패치되어 퍼포먼스의 비효율성을 유발한다.


서버 그룹들의 동적 구성

 빠르게 변경되는 어플리케이션들은 새 서버를 추가하거나 지속적으로 삭제할 것을 요구한다. AWS의 EC2같은 환경상에선 흔한 일로, 유저들이 실제로 사용하는 컴퓨팅 용량에만 지불하는 동시에 응답 트래픽이 급증하면 스케일을 늘려준다. 이런 환경에서 로드밸런서가 현재 존재하는 커넥션을 방해하지 않으면서 그룹상에서 동적으로 서버를 추가하거나 삭제해주면 큰 도움이 된다.

 

하드웨어 vs 소프트웨어 로드밸런싱

 로드 밸런서는 통상적으로 하드웨어기반과 소프트웨어기반으로 하는 두 방법이 있다. 하드웨어 기반 해법 공급업체는 그들이 제공하는 기기에 특화된 프로세서를 사용하는 독점 소프트웨어를 탑재한다. 웹사이트의 트래픽이 증가하는 것을 해결하기 위해서 당신은 더 큰 기기를 더 사야한다.
소프트웨어 해법은 하드웨어 상품에서 동작하며 더 저렴하고 더 유연하다. 당신은 소프트웨어나 하드웨어나 아니면 AWS EC2와 같은 클라우드 환경을 선택할 수 있다.

 

원본 글: NGINX - What is load balancing?

 

What Is Load Balancing? How Load Balancers Work

Learn how load balancing improves network, server, and app performance. Get help with session persistence and dynamic configuration.

www.nginx.com

다음에 보기 편하도록 나름 번역해봤는데 평소때 아무렇지 않게 쓰던 단어도 막상 번역하려고 하니 잘 생각이 안 나기도 하고 가독성 좋게 번역하는걸 몰라서 직역..일부는 엉터리로 번역해서 사실 보기 편한지는 모르겠지만 일단 했으니 올려놓는다..왠지 미래에도 그냥 영어문서 읽고 있을 것 같다.

반응형
댓글