로드 밸런서(Load Balancer)

문딤·2022년 9월 6일
0
post-custom-banner

로드 밸런서란?

서버에 가해지는 트래픽을 여러대의 서버에게 균등하게 분산시켜주는 역활을 하는 것이다.

서버에 가해지는 트래픽에 따라 서비스의 작동에 에러가 있을텐데, 이러한 문제해결을 위해서는 크게 두가지 방법이 있다.

서버의 인스턴스 성능을 올리는 SCALE-UP 과 서버를 여러대로 나누어서 트래픽을 처리하는 SCALE-OUT 방식이있다.

💨 로드 밸런서는 SCALE-OUT 방식이다.

또한 지속적으로 IP주소가 바뀌기 때문에 도메인 기반으로 사용해야한다.

⭕ 장점

📍 비용 절감
📍 무중단 서비스 제공

주요 기능
📍 NAT
📍 터널링

  • 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 해주는 개념
  • 데이터를 캡슐화해 연결된 상호간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.
    📍 DSR(Dynamic Source Routing protocol)
    로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념이다.

로드 밸런싱 알고리즘

  • 라운드 로빈(Round Robin)

서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식 서버와의 연결이 오래 지속되지 않을 경우 적합하다.

  • 가중 라운드 로빈
    각 서버에 가중치를 매기고 가중치가 높은 서버에 요청을 우선적으로 배정하는 방식
    서버의 트래픽 처리 능력이 다를 경우 사용

  • 최소 연결 방식(Least Connections)
    요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 트래픽을 배정하는 방식
    서버에 들어온 트래픽들이 일정하지 않은 경우에 적합하다.

  • IP 해시 방식(Source)
    클라이언트의 IP주소를 특정 서버로 매핑하여 요청을 처리하는 방식
    사용자가 항상 동일한 서버로 연결된다.

로드 밸런싱 종류

L2

  • MAC 주소를 바탕으로 Load Balancing 한다.

L3

  • IP주소를 바탕으로 Load Balancing 한다.

L4

  • Transport 계층(전송 계층) 에서 Load Balancing 합니다. (IP와 Port)
  • 데이터를 변경/수정 할 수 없다.
  • 패킷 레벨에서만 트래픽을 분산하기 때문에 속도가 빠르고 효울이 높다.
  • 섬세한 라우팅이 불가능하지만 L7로드 밸런서보다 가격이 저렴하다.
  • TCP,UDP

L7

  • Application 계층(응용 계층) 에서 Load Balancing 한다.
  • 포트나 헤더등의 정보를 수정 할 수 있다.
  • 패킷 내용을 확인하고 그 내용에 따라 트래픽을 특정 서버에 분산하는 것이 가능하다.
  • 섬세한 라우팅이 가능하고, 비정상적인 트래픽을 필터링 할 수 있다.
  • 패킷의 내용을 복호화 하기 때문에 더 많은 비용이 든다.
  • HTTP(80), HTTPS(443), FTP(21), WebSocket

타겟 그룹

타겟그룹이란 EC2인스턴스를 오토스케일링 할 수 있는 단위로 사용된다.
각각의 타겟그룹에 있는 인스턴스들은 정의된 Health Checks(상태 확인)를 수행하게된다.

Auto Scailing

오토 스케일링은 미리 정의한 용량 정책에 따라 EC2 인스턴스의 용량을 확대하거나 축소할 수 있다. EC2와 토오 스케일링을 결합해 고가용성 아키텍처를 구현할 수 있으며, 언제든 원하는 수만큼의 인스턴스를 운용할 수 있다.

서버의 과부하, 장애 등과 같이 서비스 불능 상황 발생시 자동으로 서버를 복제하여 서버 대수를 늘려주는 작업을 해주는 AWS 서비스라고 생각하시면 된다.

고가용성: 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질, 보통 고가용성을 위해 2개의 서버를 연결하는 방식을 사용한다.

Health Checks(상태 확인)

로드밸런서에는 Health Checks를 할 수 있다.
Health Checks는 타겟그룹에 원하는 경로와 포트를 설정하여 HTTP 응답이 정상적으로 오는지 확인하고, 오지 않는다면 비정상 상태의 인스턴스를 제외한 다른 인스턴스로만 트래픽을 분산한다.

  • InService (정상적으로 응답)
  • OurOfService (응답 실패)

참고

https://yoo11052.tistory.com/63

profile
풀스택개발자가 될래요
post-custom-banner

0개의 댓글