私はこれをELBの公式ドキュメントで見つけた
デフォルトでは、ロード バランサは各リクエストを、負荷が最も小さいアプリケーション インスタンスに個別にルーティングします。
しかし、Newvemの記事によると、ELBはラウンドロビンアルゴリズムのみをサポートしているとのことである。
Amazon ELB でサポートされているアルゴリズム- 現在、Amazon ELB はラウンドロビン (RR) とセッションスティッキーアルゴリズムのみをサポートしています。
それでどれですか?
[1]http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_StickySessions.html
答え1
HTTP(S) の場合はリクエスト数に基づいて、その他はラウンドロビンです。
クライアントがロード バランサーにリクエストを送信する前に、まずドメイン ネーム システム (DNS) サーバーを使用してロード バランサーのドメイン名を解決します。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