본문 바로가기
네트워크

LoadBalancing 방법, 설계

by bzerome240 2023. 1. 2.

 

https://www.cloudflare.com/learning/performance/what-is-load-balancing/

 

LoadBalancing 방법


트래픽 분산 규칙

1 Round-Robin
2 IP Hashing
3 Hashing
4 Least Connections
5 Least Time
6 Random

 

부하 분산 기준

  • TCP Connection
  • Traffic
  • weight
  • HTTP Request Count

 

 


 


LoadBalancer 세팅를 위해서 우선 서버의 이용가능 상태 판별해야한다.

 

서버 연결 확인 방법


1 TCP, UCP 연결 정상 여부
2 HTTP 연결 200 응답 여부


2번이 health check 비용이 크고 확인 방법이 구체적이다.

 




LoadBalancing 설계


LoadBalancing을 통해 서비스 가용성을 높였지만 LoadBalancer 서버에 장애가 생긴다면?!


HA(99.5% 이상의 가용성) 을 가능하게 하려면 DNS에 Mulity Availability Zone에 위치한 LoadBalancer들을 연결해서 서비스를 구성하는 것이 좋다.

AWS에서는 LoadBalancer를 Availability Zone 별로 따로 두지 않고 한번의 설정으로 가용한 Availability Zone에 모두 대응할 수 있도록 Cross-zone Loadbalancing을 설정으로 대응한다.

 




정리


Multi Availability Zone 은 이상적이지만 서비스 규모가 작다면 over engineering일 수 있다.

 


 


AWS Elastic LoadBalancer

타입 1) Network LoadBalancer

  • L4 레이어의 정보로 트래픽을 분산해준다.
  • 분산 규칙이 정해져있다.
  • L4 레이어만 확인하므로 Application LoadBalancer보다 빠르다

타입 2) Application LoadBalancer

  • L7 레이어의 정보로 트래픽을 분산해준다.
  • 사용 목적: 트래픽 분산 규칙을 직접 정하고 싶은 경우에 사용한다.
  • L7 레이어까지 확인하므로 Network LoadBalancer 보다는 느리다.



타입 3) Gateway LoadBalancer

  • GENEVE 프로토콜로 된 서비스로 연결할 때 사용한다.
  • 사용 목적: third party SaaS 업체들이 서비스 형태로 인프라를 제공할 때 인프라는 해당 업체가 직접 관리하도록 감추고(encapsulation)  client가 안전하고 편리하게 연결할 수 있도록 제공하기 위해 사용한다.

 


 

DNS Round Robin

Dns에 내 도메인으로 여러 서버 IP를 넣을 수 있다. (Load Balancer들의 IP들을 넣으면 된다)

순번대로 돌아가면서 DNS Resolve (Domain To IP) 를 해준다.

 

문제점 1) 일정 기간동안 local pc에 설정한 TTL 시간만큼 캐싱이 된다.

IP를 추가, 삭제, 변경 후 전파 하는데에 TTL 시간 만큼 걸린다. 따라서 TTL시간은 20초~1분이 적당하다.

문제점 2) 단순히 순서대로 전달하기 떄문에 운이 좋지 않으면 특정 node로 트래픽이 몰릴 수 있다.

 

개선방법) DNS에 설정된 Load Balance의 Health Check를 한다.

글로벌 서비스일 경우에는 위치 기반으로 최적의 서버 IP를 찾는다.

 

728x90
반응형

'네트워크' 카테고리의 다른 글

Router와 Switch, Switch와 Hub  (3) 2024.10.26
Blocking Non-Blocking  (0) 2024.10.06
TCP/IP, TCP, UDP 란?  (0) 2023.01.01
로드밸런싱 DNS VS GSLB  (0) 2022.09.08

댓글