6월 5째주 새로운 지식들

Daniel_Yang·2022년 6월 27일
0

6월 27일

  • 선정한 이유: 대규모 트래픽을 감당하기 위해 로드밸런싱할 줄 아냐고라는 질문에 뭔 소리인지 몰라서 선택하였다.

로드밸런싱(=부하분산)

정의

  • 로드밸런서는 컴퓨터 네트워크 기술의 일종으로, 서버에 가해지는 부하, 요청(=로드)를 분산(=밸런싱)해주는 장치 또는 기술
  • 분산: 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것
  • 로드밸런서: 이를 제공하는 서비스, 장치

왜 등장?

  • 하나의 서버가 모든 트래픽을 감당할 수 없어서 서버를 추가로 구비하고 여러 대의 서버에 동일한 데이터를 저장해 수많은 트래픽을 효과적으로 분산할 때 필요한 기술
    - 트래픽의 서버의 부화가 심할때의 가장 먼저 하는일은 DB 서버의 분리 but 하지만 이제는 DB서버의 분리만으로도 부하를 감당하기가 힘들어짐.

목표

  • 가용성 및 응답시간을 최적화


특징

  • 투명성: 소프트웨어를 이용한 부하분산이 적용되며, 이 소프트웨어는 중간에 위치해 실제 서비스하는 서버와 클라이언트를 포트를 이용해 중개하고 있다. 그러나 사용자는 이를 알아차리지 못한다.
  • 보안: 내부 네트워크 구조를 숨김으로서 크래킹을 막을 수 있다.

방법

1. 네임(DNS)서버의 도메인을 이용한 DNS 라운드 로빈(ALB(Application LoadBalancer)

  • L7 : Application 계층을 사용, URL 또는 HTTP 헤더에서 부하 분산이 가능
  • L7 위에서 동작하기 때문에 IP, Port 이외에도 URI, Payload, Http Header, Cookie 등의 내용을 기준으로 부하를 분산합니다

2. L4를 이용한 로드밸런싱( NLB(Network LoadBalancer))

  • L4 : Transport 계층을 사용, IP 주소와 포트 번호 부하 분산이 가능
  • L4부터 Port를 다룰 수 있기 때문입니다.
  • L4 Load Balancer는 IP, Port 를 기준으로 스케줄링 알고리즘을 통해 부하를 분산합니다.

L4 vs L7 차이점(사용 환경과 상황에 따라 다른 방식)

  • L4 Load Balancer는 단지 부하를 분산시키는 것이라면, L7 Load Balancer는 요청의 세부적인 사항을 두고 결제만 담당하는 서버, 회원가입만을 담당하는 서버 등으로 분리해서 가볍고 작은 단위로 여러 개의 서비스를 운영하고 요청을 각각의 서버에 분산. 물론 그만큼 자원 많이 소모


로드밸런싱 알고리즘(몇 가지만)

  • 라운드 로빈 방식: 각 서버 순서에 따라 순서대로 돌아가며 배정

  • 가중 라운드 로빈 방식: 서버마다 가중치에 따라 클라이언트 요청을 우선적으로 배분

  • 최소 연결 방식: 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분하는 방식


참고

0개의 댓글