반응형

서버를 클라우드에 올려 다수의 클라이언트들이 서비스를 이용한다고 하자.

 

수많은 클라이언트들의 요청은 쏟아지는데, 서버가 하나라면? 트래픽이 몰리게 되어 서버가 터져버리고 말 것이다. 

 

따라서 서버를 여러개 구축해서, 각 서버가 동일한 데이터를 갖도록 하고, 여러 요청을 해결할 수 있다.

 

그런데 여러대의 서버로 들어오는 트래픽을 제대로 분산하지 못한다면? 하나의 서버로 몰리게 되어 결국 효과는 없을것이다.

 

그러므로, 쏟아지는 트래픽을 여러대의 서버로 균등하게 분산시켜주는 기술이 필요하고, 그게 바로 "로드밸런싱" 이다!

 

 💡 로드밸런서 ???

로드밸런서 아키텍처

로드밸런서는 로드밸런싱을 해주는 장치라고 생각하면 된다!

로드(load) = 서버에 가해지는 부하, 밸런서(balancer) = 분산의 합성어이다.

 

로드밸런서는 사진에서와 같이, 클라이언트와 서버풀(분산 네트워크 서버집합) 사이에 위치하여, 쏟아지는 트래픽을 각 서버에 동등하게 나누어 주는 역할을 한다.

 

로드밸런싱이 필수일까?

 

서버를 사용하는 클라이언트 수가 적다면, 하나의 서버로도 충분히 서비스 운영이 가능하다. 

그렇지만 사업이 커지고 클라이언트 수가 많아진다면 그 만큼 요청 트래픽도 증가 할것이기 때문에 분산 처리를 해주는 것이 좋고, 따라서 로드 밸런싱이 필요하다.

 

늘어나는 트래픽에 대처할 수 있는 방법에는 두가지가 있다.

 

scale-up 과 scale-down

 

scale-up은 하나의 서버의 성능을 높혀주는 것이다.

scale-down은 비슷한 서버의 성능을 여러개로 증축하는 것이다.

 

scale-up 과 scale-down

분산 서버에 로드밸런싱 기술을 적용해야 하므로 scale-out 방식으로 트래픽을 해결할 경우에, 로드밸런서 장치가 사용될 수 있다.

 

 

로드밸런싱에는 다양한 알고리즘이 있다.

 

  • 라운드 로빈 알고리즘  :  클라이언트의 요청이 들어오는 순서대로, 각 서버에 차례로 분배한다. 따라서 서버의 세션 지속 시간이 길지 않은 서비스의 경우 사용하면 좋은 알고리즘이다.
  • 가중 라운드 로빈 알고리즘 : 각 서버가 서로 다른 성능을 가지고 있을 때 사용하는 것으로, 성능에 따른 가중치를 부여하고, 그에 맞게 트래픽을 분산한다. 예를 들어서 서버 A의 가중치가 5, 서버 B의 가중치가 2이라면, A에는 5개의 요청을, B에는 2개의 요청을 전달해서 트래픽을 분산하는 방식이다.
  • IP 해시 방식 : 클라이언트의 ip를 해싱해서 특정 서버로 매핑하여 요청을 처리한다. 따라서 클라이언트는 항상 동일한 서버로 연결됨을 보장할 수 있다.
  • 최소 연결 방식 : 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분한다. 
  • 최소 리스폰타임 : 서버의 현재 연결상태와 응답시간을 고려해서 최적인 서버에 우선적으로 트래픽을 배분한다. 즉 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 먼저 할당된다.

 

 

 

 

반응형

'CS' 카테고리의 다른 글

ERP & CRM 개념 알기 / 비즈니스 소프트웨어  (0) 2023.12.20

+ Recent posts