스케일 업, 아웃과 로드 밸런서란?

wannabeking·2022년 8월 17일
0

CS

목록 보기
12/27

서비스의 트래픽이 증가함에 따라 낮은 트래픽에 여유롭던 서버도 더 이상 클라이언트의 요청을 버티지 못할 수 있다.

증가한 요청에 따라 서버를 더 확장시켜 해결할 수 있고, 다음 두 가지의 방법이 가능하다.

스케일 업(Scale Up)

서버의 하드웨어 성능을 업그레이드 하는 방법이다. (수직적 확장)

CPU의 코어 수를 증가시키거나, RAM을 추가하는 방법 등으로 서버의 성능을 업그레이드 한다.

다음과 같은 장, 단점을 가진다.

장점

  • 허들이 낮다.
  • 하나의 서버만 관리하면 되기 때문에 유지 보수가 쉽다.

단점

  • 하드웨어는 성능이 증가할수록 가격이 급격하게 증가하기 때문에 비용이 높다.
  • 아무리 성능을 향상시켜도 서버가 다운되면 전체 서비스가 멈춘다.

스케일 아웃(Scale out)

비슷한 성능의 서버를 여러대 증설하는 방법이다. (수평적 확장)

서버가 여러대로 나뉘기 때문에 앞단에서 각 서버에 트래픽을 균등하게 나눠주는 로드 밸런싱 기술이 필요하다.

장점

  • 비교적 비용이 낮다.
  • 하나의 서버가 다운되어도 나머지 서버는 요청을 수행할 수 있다.

단점

  • 허들이 높다.
  • 서버의 수가 증가함에 따라 관리가 힘들어진다.


로드 밸런서

스케일 아웃의 경우 로드 밸런서가 필요하다.

여러대의 서버가 존재하니, 각 서버에 트래픽을 알맞게 나눠줘야하기 때문이다.

로드 밸런싱은 3가지 종류가 존재한다.

L2

  • MAC주소를 바탕으로 로드 밸런싱

L3

  • IP주소를 바탕으로 로드 밸런싱

L4

  • TCP/UDP가 속한 전송계층 단계에서 로드 밸런싱

L7

  • HTTP/HTTPS가 속한 응용계층 단계에서 로드 밸런싱

그렇다면 로드 밸런서는 어떠한 기준으로 어떤 서버에 요청을 전달할지 정할 수 있을까?

Round Robin

  • 각 서버가 차례대로 요청 전달 받는 방식

Least Connections

  • 연결 개수가 가장 적은 서버를 선택하는 방식

Source

  • 사용자의 IP를 해싱해서 분배하는 방식

로드 밸런서에 장애가 발생하는 경우는 어떻게 해결할까?

Active / Passive

  • 주로 사용하는 액티브와, 액티브에 장애가 있을 시 사용하는 패시브 로드 밸런서를 사용한다.
  • 두 로드 밸런서는 서로 Health Check 하며 메인 로드 밸런서에 장애가 발생하면 가상IP는 여분의 로드 밸런서로 변경된다.


profile
내일은 개발왕 😎

0개의 댓글