changki123's Foundation

ELB 라우팅 알고리즘

2024. 2. 9. 16:01 | Amazon Web Services


728x90

 

라우팅 알고리즘

 

라우팅 알고리즘은 요청을 수신할 대상을 결정할 때 로드 밸런서가 사용하는 방법입니다. 라운드 로빈 라우팅 알고리즘은 기본적으로 대상 그룹 수준에서 요청을 라우팅하는 데 사용됩니다. 애플리케이션의 요구 사항에 따라 최소 미해결 요청 및 가중치가 부여된 무작위 라우팅 알고리즘도 사용할 수 있습니다 . 대상 그룹은 한 번에 하나의 활성 라우팅 알고리즘만 가질 수 있지만 필요할 때마다 라우팅 알고리즘을 업데이트할 수 있습니다.

고정 세션을 활성화하면 선택한 라우팅 알고리즘이 초기 대상 선택에 사용됩니다. 동일한 클라이언트의 향후 요청은 선택한 라우팅 알고리즘을 우회하여 동일한 대상으로 전달됩니다.

 

라운드 로빈 (Round robin)

  • 라운드 로빈 라우팅 알고리즘은 대상 그룹의 정상 대상 전체에 순차적으로 요청을 균등하게 라우팅합니다.
  • 이 알고리즘은 수신되는 요청의 복잡성이 유사하거나 등록된 대상의 처리 기능이 유사하거나 대상 간에 요청을 균등하게 분배해야 하는 경우 일반적으로 사용됩니다.

 

가장 덜 처리된 요청 (Least outstanding requests)

  • 최소 미해결 요청 라우팅 알고리즘은 진행 중인 요청 수가 가장 적은 대상으로 요청을 라우팅합니다.
  • 이 알고리즘은 수신되는 요청의 복잡성이 다양하고 등록된 대상의 처리 능력이 다를 때 일반적으로 사용됩니다.
  • HTTP/2를 지원하는 로드 밸런서는 HTTP/1.1만 지원하는 대상을 사용하는 경우 요청을 여러 HTTP/1.1 요청으로 변환합니다. 이 구성에서 최소 미해결 요청 알고리즘은 각 HTTP/2 요청을 여러 요청으로 처리합니다.
  • WebSocket을 사용할 때 대상은 최소 미해결 요청 알고리즘을 사용하여 선택됩니다. 선택되면 로드 밸런서는 대상에 대한 연결을 생성하고 이 연결을 통해 모든 메시지를 보냅니다.
  • 최소 미해결 요청 라우팅 알고리즘은 느린 시작 모드에서 사용할 수 없습니다.

 

가중 무작위 (Weighted random)

  • 가중치가 적용된 무작위 라우팅 알고리즘은 대상 그룹의 정상 대상 전체에 무작위 순서로 요청을 균등하게 라우팅합니다.
  • 이 알고리즘은 ATW(자동 목표 가중치) 변칙 완화를 지원합니다.
  • 가중치가 적용된 무작위 라우팅 알고리즘은 느린 시작 모드와 함께 사용할 수 없습니다.

 

AWS에서 기본으로 지원하는건 3가지

 

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#modify-routing-algorithm

 

Target groups for your Application Load Balancers - Elastic Load Balancing

Target groups for your Application Load Balancers Target groups route requests to individual registered targets, such as EC2 instances, using the protocol and port number that you specify. You can register a target with multiple target groups. You can conf

docs.aws.amazon.com

 

 

기본적인 알고리즘

 

라운드 로빈 방식 (Round Robin Method)

  • 서버로 들어온 요청을 순서대로 돌아가며 배정하는 방식. 
  • 클라이언트의 요청을 순서대로 분배하기 때문에 서버들이 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우에 활용하기 적합.

 

가중 라운드로빈 방식 (Weighted Round Robin Method)

  • 각각의 서버마다 가중치(Weight)를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분.
  • 주로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 로드밸런싱 방식.
    ex) 서버 A의 가중치: 5 / 서버 B의 가중치: 2
      => A 서버에 5개의 Request, B 서버에 2개의 Request 할당.

 

IP 해시 방식 (IP Hash Method)

  • 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식.
  • 사용자의 IP를 *해싱(Hashing)하여 부하를 분산하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장.
  • 경로가 보장되며, 접속자 수가 많을수록 분산 및 효율이 뛰어남.

 

최소 연결 방식 (Least Connection Method)

  • Request가 들어온 시점에 가장 적은 연결(세션) 상태를 보이는 서버에 우선적으로 트래픽을 할당.
  • 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합.

 

최소 응답시간 방식 (Least Response Time Method)

  • 서버의 현재 연결 상태와 응답시간(Response Time)을 모두 고려하여, 가장 짧은 응답 시간을 보내는 서버로 트래픽을 할당하는 방식.
  • 각 서버들의 가용한 리소스와 성능, 처리중인 데이터 양 등이 상이할 경우 적합.

 

대역폭 방식 (Bandwidth Method)

  • 서버들과의 대역폭을 고려하여 서버에 트래픽을 할당.
728x90

'Amazon Web Services' 카테고리의 다른 글

lambda session id 자동 부여  (0) 2024.04.14
AWS Serverless Application Model  (0) 2024.03.07
람다람쥐썬더  (0) 2024.03.02
Lambda SES 이메일 보내기  (0) 2024.02.26
Lambda hello world~ .jar  (0) 2024.02.21