Elastic Load Balancer가 다른 크기의 인스턴스에 트래픽을 올바르게 분산시킬 수 있습니까?


10

Elastic Load Balancer를 살펴 보았습니다. 내가 이해하는 것처럼 그들은 라운드 로빈을 수행하고 그 뒤에있는 서버에 연결을 균등하게 분배합니다. ELB 뒤에 다른 크기의 인스턴스가 있으면 어떻게됩니까? 더 큰 인스턴스에 더 많은 연결을 보내거나 연결을 계속 균등하게 분배합니까? 따라서 다른 크기의 인스턴스를 사용해서는 안됩니다.

답변:


15

내가 이해하는 것처럼 그들은 라운드 로빈을 수행하고 그 뒤에있는 서버에 연결을 균등하게 분배합니다.

불행히도, Amazon ELB 라우팅 문서는 존재하지 않는 것이 부족하기 때문에 결론을 내리기 위해 몇 가지 조각을 조립해야합니다. 여기에서 유일한 단편 가이드 탄성로드 균형 개발자 제가 알고 섹션을 참조 스티커 세션 에서 균형 탄성로드의 개요 :

기본적으로로드 밸런서는로드 가 가장 작은 응용 프로그램 인스턴스에 각 요청을 독립적으로 라우팅합니다 . 그러나 고정 세션 기능 (세션 선호도라고도 함)을 사용하면로드 밸런서가 사용자의 세션을 특정 응용 프로그램 인스턴스에 바인딩 할 수 있습니다. 이를 통해 세션 중에 사용자로부터 오는 모든 요청이 동일한 응용 프로그램 인스턴스로 전송됩니다. [강조 광산]

이제 무엇을 않는 작은 부하를 정확히 말인가요? 다시 한 번 내가 아는 유일한 설명은 2009 년부터 ELB 전략에 대한 다소 모호한 AWS 팀의 대응입니다 .

ELB는 각 인스턴스에서 처리중인 요청 수 (또는 TCP의 경우 연결 수)를 느슨하게 추적합니다. 각 인스턴스에서 리소스 사용량 (예 : CPU 또는 메모리)을 모니터링하지 않습니다. ELB는 현재 미해결 요청이 가장 적은 것으로 판단되는 인스턴스 중에서 라운드 로빈을 수행합니다. [강조 광산]

이는 시스템 아키텍처 및 해결 된 사용 사례와 관련하여 많은 의미가 있지만 고급 HA 시나리오에 필요하거나 필요할 수있는 라우팅의 투명성 및 / 또는 제어 기능을 제공하지는 않습니다.

해석에 따라 Elastic Load Balancing-Load 배포 정책에 대한 최신 AWS 팀의 응답에 따라 약간의 모순이있을 수 있습니다 .

라운드 로빈이 작동하지만 클라이언트 세션이 항상 TTL 또는 DNS 캐시를 존중하지는 않으므로 기울어 진 결과와 고르지 않은 요청 분산을 얻을 수 있습니다. ELB는 트래픽 라우팅 결정에서 현재 수신 한 트래픽 / 요청 인스턴스에 영향을 미치지 않습니다. [강조 광산]

건강 검진

물론 위의 내용은 적절하게 문서화되고 투명하며 제어 가능한 상태 확인 으로 수정되어 ELB 에 대한 앞에서 언급 한 AWS 팀의 응답에 요약 된 것처럼 인스턴스가 라우팅에 포함되지 않도록 인스턴스를 일시적으로 제거 할 수 있습니다. 전략 도 :

로드 밸런서는로드 밸런서에 등록 된 인스턴스의 상태를 모니터링합니다. 로드 밸런서는 인스턴스의 문제를 감지하면 트래픽 분배를 중지합니다. 인스턴스가 다시 정상 상태가되면로드 밸런서가 트래픽 분배를 다시 시작합니다. 이 프로세스를 사용하면 상태 점검을 구성 할 필요없이 애플리케이션이 실패한 인스턴스에 자동으로 반응 할 수 있습니다.

결론

확실히 특이한 것은 아니지만 ELB가 다른 Amazon EC2 인스턴스 유형 의 풀에서 작동하지 않아야하는 이유를 알지 못합니다. 하지만 직접 시도하지는 않았지만 CloudWatch사용하여로드 밸런서를 모니터링 하고 모니터링하는 것이 좋습니다. 이러한 설정에 대한 통찰력과 자신감을 얻기 위해 개별 EC2 인스턴스와 결과를 상호 연관시킵니다.


1
내가 찾고 있었지만 찾을 수 없었던 깊이있는 답변에 정말 감사드립니다.
Sean Bannister

1
경험상 ELB는 여러 인스턴스 유형이 포함 된 풀로 트래픽을 제대로 분배하지 않는다고 말합니다.
ubiquitousthey

누구든지 AWS Application Load Balancer (ALB) 및 다른 인스턴스 유형에 대한 정보가 있습니까?
SomethingOn

1

지금까지 작성된 내용을 기반으로 배포 알고리즘은 매우 간단합니다.

ELB의 프런트 엔드는 일반적으로 하나 이상의 ELB 인스턴스이며 배포는 라운드 로빈입니다.

백엔드 (인스턴스) algo는 다음과 같이 주장합니다.

ELB는 각 인스턴스에서 처리중인 요청 수 (또는 TCP의 경우 연결 수)를 느슨하게 추적합니다. 각 인스턴스에서 리소스 사용량 (예 : CPU 또는 메모리)을 모니터링하지 않습니다. ELB는 현재 미해결 요청이 가장 적은 것으로 판단되는 인스턴스 중에서 라운드 로빈을 수행합니다.

이는 더 큰 인스턴스에 미해결 요청이 적 으면 더 많은 트래픽이 해당 요청으로 라우팅 될 것이라고 추론합니다. 이를 보장 할 방법이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.