Load Balancer

진성·2022년 8월 21일
0
post-thumbnail

웹서비스를 운영할때는 서버에서 트래픽이 몰리게 되면 서버의 부하가 발생해 서버가 다운이 되어 서비스 운영이 힘들어 질 수 있다.
서버의 부하가 생기면 해결할 수 있는 방법이 두가지인데, 서버 인스턴스를 스케일 업을 하거나 인스턴스를 여러개로 나누어 스케일 아웃을 하는 방식이 있다.
스케일 업은 컴퓨터의 성능을 올리는 것을 의미하고, 스케일 아웃은 컴퓨터를 여러대를 두는 것을 의미한다.
로드 밸러서는 스케일 아웃 방식이다.

Load Balancer?

트래픽이 몰리는 것을 막아 가용성을 보존하고, 트래픽 병목 현상을 예측하여 막을 수 있는 것이 로드 밸런서가 된다.
가용성이라는 것은 흔히 서비스가 지속되는 정도를 의미한다.

로드 밸런서를 사용하는 이유로는 비용을 절감할 수 있다는 장점이 있고, 서비스가 트래픽이 몰려 중단될 경우는 거의 없다고 볼 수 있다.

로드 밸러서의 주요기능으로는 터널링과 DSR이 있다.
터널링은 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 해주는 개념이다.
DSR은 Dynamic Sorce Routing protocol로 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트로 찾아가는개념이다.

로드 밸런서는 그냥 랜덤하게 부하를 분산하는 것이 아닌, 로드 밸런싱 알고리즘 있다.

  • 라운드 로빈: 요청이 들어온 순서대로 처리를 함.
  • 가중 라운드 로빈: 각 서버에 가중치를 매기고 가중치가 높은 서버에 우선 배치함.
  • 최소 접근법: 트래픽이 제일 적은 서버로 우선 배치 함.
  • Miss missis: 특정 서버에 장애가 생기면 재할당을 함.
  • Hashing: 특정 클라이어트가 접속하면 특정 서버로 처리를 함.

로드 밸런서는 크게 두가지로 나뉘는데, L4 로드 밸런서와 L7 로드 밸런서로 나뉜다.
기본적인 로드 밸런서는 L4 로드 밸런서인데, IP정보와 Port 정보를 참조해서 서버에 라우팅을 한다.
L7 로드 밸런서는 IP정보와 Port 정보에 페이로드 패턴을 적용한다.
페이로드는 http 헤더와 같은 요약 정보를 말하는데, 요약 정보를 확인하여 라우팅을 한다.

로드 밸런서에는 타겟 그룹이라는것이 존재하는데, 인스턴스 그룹은 인스턴스를 오토스케일링 할 수 있는 단위로 사용된다.
각각의 인스턴스그룹에 있는 인스턴스들의 정의된 Health Checks를 수행하게 된다.
Health Checks는 인스턴스그룹에 원하는 경로와 포트를 설정하여 HTTP 응답이 정상적으로 오는지 확인하고 오지 않는다면 비정상 상태의 인스턴스를 제외한 다른 인스턴스로만 트래픽을 분산한다.

로드 밸런서에는 Auto Scailing이라는 기능이 존재한다.
오토 스케일리은 미리 정의한 용량 정책에 따라 인스턴의 용량을 확대하거나 축소할 수 있다.

참고: 로드 밸런서란? (Load Balancer), 로드 밸런서란?

profile
풀스택 진행중...

0개의 댓글