[네트워크] Ep 1. 로드밸런서(Load Balancer)

조예진·2022년 5월 5일
5
post-thumbnail

이전에서 공부한 것 처럼 네트워크 Proxy 중 Reverse Proxy는 로드밸런싱을 해주는 서버였다. 그렇다면 로드밸런서는 무엇일까?!

💡이전 챕터: Proxy 개념 공부하고 올 사람은 요기 Click!

📍로드밸런서(Load Balancer)란?


[사전적 정의]

부하분산 또는 로드 밸런싱(load balancing)
컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.

-즉, 클라이언트의 요청이 들어왔을 시 한 서버가 처리하기에는 많기 때문에 이 요청 작업을 여러 곳으로 분산시켜주는 것을 의미한다.

✏️ 로드밸런서가 왜 필요한거야?


1. 로드밸런서는 왜 생겼지?

  • 우리는 클라이언트가 1,2명 밖에 없어!
    사용자가 별로 없을 때는 로드밸런서의 기능이 사실 의미가 없다. 왜냐면 한 대 서버가 이미 여유롭게 원하는 결과를 응답해 줄 수 있기 때문이다.

  • 우리는 대용량 트래픽이 발생하는 곳이야!
    서버는 모든 클라이언트에게 응답을 해주고 싶지만 한번에 많은 요청을 처리하기에는 부담이 생기고, 이럴 경우 극단적으로는 서버가 다운될 수 있다.

위 전자와 같이 요청이 없을 경우 문제가 없겠지만..
후자와 같이 사용자가 많을 경우 요청을 처리하기 위해 2가지의 방법이 생겼다.

2. SCALE-UP 과 SCALE-OUT

  • scale-up

    서버 성능을 높여보자! 하드웨어 성능이 더 좋은 걸 쓰면 이전보다 많은 요청을 처리할 수 있으니까 1차적으로 scale-up을 통해 많은 사용자의 요청 문제를 해결

    ❔하지만 너무 감사하게도 사용자가 이전보다 훠~~월씬 많아지게 된다면?
    하드웨어 성능을 높이는 것에는 한계가 있다.
    그래서 나오게 된 방법이 아래 'scale-out'이다.
  • scale-out

    서버 한대에서 최소 두대 이상, 여러대의 서버를 추가하는 방법이다.

  • 핵심> 로드밸런싱(LoadBalancing)

    위의 scale-out 방식으로 증설된 서버로 클라이언트의 요청을 균등하게 분산해주는 방법

✏️로드밸런서는 어떻게 클라이언트의 요청을 분산시키는걸까?


📌L4 로드밸런서

  • L4 네트워크계층(IP, IPX) 또는 L3 전송계층(TCP/UDP)에서 로드밸런싱
  • URL을 들어왔을때 (ex) 8번 포트로 접근 시 서버 A, 서버 B로 요청을 고르게 나눠주는 것
  • 현재는 거의 사용하지 않음

📌L7 로드밸런서

  • 7계층 어플리케이션 계층(HTTP, FTP, SMTP) 에서 로드밸런싱
  • APPLICATION 요청방법에 따라서 담당 서버들로 로드밸런싱 해줌
  • 현재 로드밸런서는 대부분 L7 로드밸런서

❔더 추가하자!

  • 로드밸런싱 알고리즘
  • l4, l7의 장단점
  • AWS 로드밸런서 설정 방법
  • l7 로드밸런서는 특정 라우터로 요청이 많이 갔을때는 어떻게 로드밸런싱해주는걸까??

참고자료

profile
블로그 이전 중 -> https://devjooj.tistory.com/

0개의 댓글