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를 찾는다.
'네트워크' 카테고리의 다른 글
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 |
댓글