답변:
내가 이해하는 것처럼 그들은 라운드 로빈을 수행하고 그 뒤에있는 서버에 연결을 균등하게 분배합니다.
불행히도, 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 인스턴스와 결과를 상호 연관시킵니다.
지금까지 작성된 내용을 기반으로 배포 알고리즘은 매우 간단합니다.
ELB의 프런트 엔드는 일반적으로 하나 이상의 ELB 인스턴스이며 배포는 라운드 로빈입니다.
백엔드 (인스턴스) algo는 다음과 같이 주장합니다.
ELB는 각 인스턴스에서 처리중인 요청 수 (또는 TCP의 경우 연결 수)를 느슨하게 추적합니다. 각 인스턴스에서 리소스 사용량 (예 : CPU 또는 메모리)을 모니터링하지 않습니다. ELB는 현재 미해결 요청이 가장 적은 것으로 판단되는 인스턴스 중에서 라운드 로빈을 수행합니다.
이는 더 큰 인스턴스에 미해결 요청이 적 으면 더 많은 트래픽이 해당 요청으로 라우팅 될 것이라고 추론합니다. 이를 보장 할 방법이 없습니다.