Skip to content

로드밸런싱

Hoons97 edited this page Jan 10, 2025 · 1 revision

로드밸런싱이란?

로드밸런싱이 무엇인지에 대해서 설명하기 앞서, 많은 트래픽에 대처하기 위해서 서비스 서버를 확장하는 방식은 수직 확장수평 확장 두 가지로 나눌 수 있습니다.

  • scale up(수직 확장) : 서버의 성능 자체를 향상시키는 것
  • scale out (수평 확장) : 서버의 개수를 증가시키는 것

수평 확장을 통해서 서버의 성능을 향상시킨다면, 여러 개의 서버에 균등한 트래픽을 제공할 수 있어야할 것입니다.

이렇게 많은 트래픽을 관리하기 위해서 트래픽을 균등하게 배포하는 방법을 로드밸런싱이라고 합니다.

로드밸런싱 종류

L4 로드밸런서와 L7 로드밸런서

image

로드밸런싱 알고리즘

Round Robin

서버 커넥션 수, 응답 상황 등에 관계없이 순차적으로 요청을 할당하는 방식

서버들의 성능이 같은 경우, 세션이 오래 지속되지 않는 경우 활용하기 적합

Weighted Round Robin

서버마다 가중치를 두어서 가중치가 높은 서버를 우선으로 요청을 할당하는 방식

서버의 성능이 다른 경우, 높은 성능의 서버에 가중치를 두는 방식으로 사용할 수 있음

IP Hash

사용자 IP를 해싱한 값에 따라서 요청을 할당하는 방식

IP가 변경되지 않는다면 사용자마다 항상 동일한 서버로의 연결이 보장

Least Connection

가장 적은 연결이 이루어진 서버에 요청을 할당하는 방식

서버의 성능이 동일하다는 가정하에 사용

Least Response Time

가장 짧은 응답 시간을 보내는 서버로 트래픽을 할당

서버의 성능이 동일하지 않아도 사용 가능

클라우드 플랫폼에서 제공하는 LoadBalancer

ncloud LoadBalancer

지원하는 알고리즘 : Round Robin, ****Least Connection, IP Hash

AWS LoadBalancer

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/@kimjiwonpg98/Nginx-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EA%B5%AC%EC%B6%95

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

Clone this wiki locally