로드 밸런싱

무1민·2023년 8월 23일
0

로드 밸런싱

목록 보기
1/1

보통 대부분의 인터넷 서비스는 클라이언트-서버 모델을 사용한다.

  • 클라이언트-서버 모델 : 서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해 주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 의미한다.

예를 들어 하나의 서버가 다수의 클라이언트를 관리하는 1:N 관계를 가진다고 하자.

서버가 맡은 클라이언트 수가 굉장히 많다면 서버의 성능은 한계가 존재하기 떄문에 결국 클라이언트의 모든 요청을 신속하게 처리해주기는 불가능하다.

이렇게 트래픽이 증가할 경우 크게 두 가지 해결 방법이 존재한다.

  • Scale up : 서버 자체 하드웨어 성능을 업그레이드하는 것
  • Scale out : 하나의 서버가 아닌 다수의 서버를 사용하는 것

서버 자체 성능을 업그레이드하는 것은 하드웨어라는 특성 때문에 한계가 존재한다.

즉, Scale out 방식은 다수의 서버를 사용하여 트래픽이 모든 서버에 골고루 퍼질 수 있도록 해줘야 한다. 이처럼 `여러 대의 서버로 트래픽(Load)을 균등하게 분산(Balancing)해주는 기술을 로드 밸런싱(Load Balancing)이라고 한다.

로드 밸런싱

  • 여러 서버를 통해 운영되기 때문에 한 서버가 다운되더라도 이중화시킨 다른 서버에서 서비스를 지속해주기 때문에 클라이언트는 문제없이 계속해서 서비스를 받을 수 있다.
  • 로드 밸런싱을 해주는 소프트웨어 or 하드웨어 장비를 로드 밸런서라고 한다.
  • 로드 밸런서의 주 목적은 동시에 오는 수많은 커넥션을 처리하고 해당 커넥션이 요청 노드 중의 하나로 전달될 수 있도록 해주는 것이다.
  • 단지 노드를 추가하는 것만으로 서비스가 확장성을 가질 수 있는 장점이 있다.

로드 밸런싱 알고리즘

로드 밸런싱 종류

로드 밸런싱 장애 발생 시

로드 밸런싱의 장점 중 하나는 한 서버가 장애가 발생하더라도 이중화를 통해 다른 서버에서 서비스를 지속할 수 있다는 것이다.
A서버가 Fail 되었을 때 B서버가 Master 서버의 역할을 수행한다.
이 구성을 Fail Over이라고 한다.

로드 밸런싱 단점

로드 밸런서를 사용할 때 어려운 문제 중 하나는 세선 데이터를 관리하는 것이다.
로드 밸런싱을 통해 하나의 서버의 세션에 저장된다면 다른 서버에서는 세션 정보를 알 수 없기 때문에 세션이 유지되지 않는 단점이 존재한다.

이를 해결하기 위해 세션을 고정하여 특정 사용자의 요청이 전달될 노드를 고정시킬 수 있다.

로드 밸런싱에 사용되는 주요 기술

NAT(Network Address Translation)

  • private IP를 public IP로 바꾸는 데 사용하는 통신망의 주소 변조기

DSR(Dynamic Source Routing Protocol)

  • 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

Tunneling

  • 인터넷 상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념

로드밸런싱 vs 클러스터링

클러스터링이란 여러 대의 컴퓨터를 똑같은 구성의 서버 군을 병렬로 연결한 시스템으로 마치 하나의 컴퓨터처럼 사용하는 것

즉, 로드 밸런싱은 여러 대의 서버에 트래픽을 균등하게 분산시켜주는 기술이고 클러스터링은 여러 대의 서버를 하나의 서버로 만들어 사용하는 것이다.

Reference

https://sorjfkrh5078.tistory.com/147

profile
야호

0개의 댓글