-
Notifications
You must be signed in to change notification settings - Fork 0
로드밸런싱
로드밸런싱이 무엇인지에 대해서 설명하기 앞서, 많은 트래픽에 대처하기 위해서 서비스 서버를 확장하는 방식은 수직 확장과 수평 확장 두 가지로 나눌 수 있습니다.
- scale up(수직 확장) : 서버의 성능 자체를 향상시키는 것
- scale out (수평 확장) : 서버의 개수를 증가시키는 것
수평 확장을 통해서 서버의 성능을 향상시킨다면, 여러 개의 서버에 균등한 트래픽을 제공할 수 있어야할 것입니다.
이렇게 많은 트래픽을 관리하기 위해서 트래픽을 균등하게 배포하는 방법을 로드밸런싱이라고 합니다.

서버 커넥션 수, 응답 상황 등에 관계없이 순차적으로 요청을 할당하는 방식
서버들의 성능이 같은 경우, 세션이 오래 지속되지 않는 경우 활용하기 적합
Weighted Round Robin
서버마다 가중치를 두어서 가중치가 높은 서버를 우선으로 요청을 할당하는 방식
서버의 성능이 다른 경우, 높은 성능의 서버에 가중치를 두는 방식으로 사용할 수 있음
사용자 IP를 해싱한 값에 따라서 요청을 할당하는 방식
IP가 변경되지 않는다면 사용자마다 항상 동일한 서버로의 연결이 보장
가장 적은 연결이 이루어진 서버에 요청을 할당하는 방식
서버의 성능이 동일하다는 가정하에 사용
가장 짧은 응답 시간을 보내는 서버로 트래픽을 할당
서버의 성능이 동일하지 않아도 사용 가능
지원하는 알고리즘 : Round Robin, ****Least Connection, IP Hash
1. ALB(Application Load Balancer)
L7 기반 로드 밸런서를 지원
2. NLB(Network Load Balancer)
L4 기반 로드 밸런서를 지원
3. ELB(Elastic Load Balancer)
L4와 L7 모두 지원
Ref.
https://aws.amazon.com/ko/what-is/load-balancing/
https://velog.io/@makeitcloud/%EB%9E%80-L4-load-balancer-vs-L7-load-balancer-%EB%9E%80
https://www.smileshark.kr/post/what-is-a-load-balancer-a-comprehensive-guide-to-aws-load-balancer