공식 ELB 문서에서 이것을 찾았습니다.
기본적으로 로드 밸런서는 각 요청을 로드가 가장 적은 애플리케이션 인스턴스에 독립적으로 라우팅합니다.
하지만 Newvem의 기사에 따르면 ELB는 Round Robin 알고리즘만 지원한다고 합니다.
Amazon ELB에서 지원하는 알고리즘- 현재 Amazon ELB는 RR(Round Robin) 및 세션 고정 알고리즘만 지원합니다.
그럼 어느 것입니까?
[1]http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_StickySessions.html
답변1
HTTP(S)의 경우 요청 수, 기타의 경우 라운드 로빈을 기반으로 한 요청 수입니다.
클라이언트는 로드 밸런서에 요청을 보내기 전에 먼저 DNS(Domain Name System) 서버를 사용하여 로드 밸런서의 도메인 이름을 확인합니다. DNS 서버는 DNS 라운드 로빈을 사용하여 특정 가용 영역의 어떤 로드 밸런서 노드가 요청을 수신할지 결정합니다.
그런 다음 선택한 로드 밸런서 노드는 동일한 가용 영역 내의 정상 인스턴스에 요청을 보냅니다. 정상 인스턴스를 확인하기 위해 로드 밸런서 노드는 라운드 로빈(TCP 연결의 경우) 또는 최소 미해결 요청(HTTP/HTTPS 연결의 경우) 라우팅 알고리즘을 사용합니다. 최소 미해결 요청 라우팅 알고리즘은 연결 또는 미해결 요청이 가장 적은 백엔드 인스턴스를 선호합니다.
답변2
사용되는 ELB 유형에 따라 다릅니다. AWS는 시간이 지남에 따라 Classic ELB와 함께 Application ELB 및 Network ELB를 도입했습니다.
Application Load Balancers
리스너 규칙을 적용하고 (HTTP/HTTPS) 요청을 대상 그룹에 할당합니다. 다음을 사용하여 해당 대상 그룹에서 대상을 선택합니다.round robin routing algorithm
Network Load Balancers
연결을 수신한 노드는 다음을 사용하여 대상 그룹에서 대상을 선택합니다.flow hash routing algorithm
Classic Load Balancers
round robin routing algorithm
TCP 리스너와 least outstanding requests routing algorithm
HTTP 및 HTTPS 리스너에 사용
.
TLDR;
최신 ELB는
round robin routing algorithm
HTTP/HTTPS 요청 및flow hash routing algorithm
TCP 요청에 사용됩니다.
round robin routing algorithm
TCP 요청과least outstanding requests routing algorithm
HTTP 및 HTTPS 요청에 사용되는 클래식 ELB