본문 바로가기
TIL

TIL 240801 - 로드밸런싱

by lemonpie611 2024. 8. 1.

(오늘 삽질만 한 관계로...)

1. 로드밸런싱이란?

둘 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 부하를 나누는 것

가용성 및 응답시간을 최적화 할 수 있음

 

2. 주요 기능

부하 분산

  • Auto-Scaling : 조건에 맞춰 필요 시 server에 컴퓨터 수를 늘리거나 줄여서 부하 관리 가능(scale out, scale in)
  • Health Check : 해당 포트에 트래픽을 보내 애플리케이션이 올바르게 작동하는지 여부를 판별
    • L3 체크 : ICMP를 이용하여 서버의 IP주소가 통신 가능한지 확인
    • L4체크 : TCPdml 3 Way-Handshaking 특성을 바탕으로 각 포트 상태를 체크
    • L7 체크 : 애플리케이션 계층에서 체크 수행, 실제 웹페이지에 통신을 시도하여 이상 유무 파악
  • 보안 서비스 WAF, NAT
    • Web Application Firewall(WAF) : 웹의 비정상 트래픽을 탐지하고 차단하기 위한 방화벽
    • NAT(Network Address Translation) : private IP와 public IP간의 변환으로, 외부 연결에 노출되는 IP를 관리하여 위험을 최소화함

3. 로드밸런싱 종류

1) L4 로드밸런싱

  • 트래픽을 전송계층의 로드밸런서가 받아 네트워크, 전송 계층 정보를 바탕으로 서버들에게 분산
  • IP주소, 포트번호, MAC 주소, 전송 프로토콜 등에 따라 트래픽 분산하는 것이 가능
  • 패킷 내용 확인 없이 로드를 분산 > 속도 빠르고 효율 좋음
  • 데이터 내용 복호화 필요 없음 > 안전함
  • L7보다 가격이 저렴

 

2) L7 로드밸런싱

  • 트래픽을 응용계층의 로드밸런서가 받아 서버들에게 분산
  • 애플리케이션 계층에서 헤더, 쿠키 같은 사용자 요청을 기준으로 로드를 특정 서버에 분배하는 것이 가능함
  • 특정 패턴의 바이러스 감지 > 네트워크 보호 가능
  • 디도스 공격 차단 가능
    • URL 스위칭 : 특정 하위 URL들은 특정 서버로 처리
    • 컨텍스트 스위칭 : 클라이언트가 요청한 특정 리소스에 대해 특정 서버로 연결 가능
    • 쿠키 지속성 : 쿠키 정보를 바탕으로 클라이언트가 연결했던 동일한 서버에 계속 할당
  • L4 로드밸런서 기능 + 패킷 내용에 따라 로드 분배 가능 > 더 섬세한 라우팅 가능
  • 캐싱 기능 제공
  • 패킷 내용 복호화 필요 > 비용 높음
  • 클라이언트가 로드밸런서와 인증서를 공유해야함 > 공격자가 로드밸런서를 통해 데이터에 접근할 수 있는 보안상의 위험성 존재

 

4. 로드밸런싱 기법

1) 라운드 로빈

  • 요청을 순서대로 서버에 분배
  • 로드밸런싱 대상 서버의 스펙이 동일
  • 처리시간, 세션 지속시간이 짧은 애플리케이션에 적합

2) 가중 라운드 로빈

  • 각 서버마다 가중치 설정 > 가중치만큼 세션 할당
  • 스펙이 좋은 서버에 가중치를 더 주어 세션을 많이 할당

3) 최소 연결

  • 가장 적게 연결된 서버에 세션을 할당
  • 서버에 분배된 세션들이 일정하지 않은 경우에 적합
  • 부하를 줄일 때 많이 사용

4) 최소 응답

  • 서버의 응답시간을 고려하여 세션 할당
  • 가장 짧은 응답시간을 보이는 서버에 우선적으로 세션 할당

5) 해시

  • 특정 사용자는 특정 서버로만 할당
  • 특정 IP 주소나 포트에서 접속량이 특히 많을 때 적합
  •  

오토스케일링도 적으려고했는데..다음포스트에