Classic Load Balancer (CLB) は、クラスターベースのアーキテクチャを使用して、レイヤー 4 (TCP および UDP) とレイヤー 7 (HTTP および HTTPS) の負荷分散を提供します。セッション同期をサポートすることで、単一障害点 (SPOF) を排除し、冗長性を高め、サービスの安定性を確保します。
トラフィック転送サービスとして、CLB はクライアントからのリクエストを負荷分散クラスター経由でバックエンドサーバーにルーティングします。その後、バックエンドサーバーは内部ネットワークを介して CLB に応答を返します。
アーキテクチャの概要
Alibaba Cloud は、レイヤー 4 とレイヤー 7 の負荷分散サービスを提供しています。
-
レイヤー 4 負荷分散では、オープンソースの Linux Virtual Server (LVS) と Keepalived スタックを使用します。これは、クラウドコンピューティングの要求を満たすために Alibaba Cloud によってカスタマイズされています。
-
レイヤー 7 負荷分散では、Taobao が開始した Web サーバープロジェクトである Tengine を使用します。Nginx をベースにした Tengine には、高トラフィックの Web サイトを処理するための高度な機能が含まれています。

次の図に示すように、各リージョンのレイヤー 4 負荷分散サービスは、LVS サーバーのクラスター上で実行されます。このアーキテクチャは、個々のノードに障害が発生した場合でも、負荷分散サービスの可用性、安定性、スケーラビリティを保証します。

各 LVS サーバーは、マルチキャストパケットを使用して、クラスター内の他のサーバーとすべてのセッションを同期します。次の図に示すように、クライアントがサーバーに 3 つのデータパケットを送信した後、セッション A が LVS1 上に確立され、他の LVS サーバーとの同期が開始されます。実線は既存の接続を表し、破線は LVS1 に障害が発生した場合やメンテナンスが行われた場合に、トラフィックが正常なサーバーである LVS2 にフェイルオーバーする様子を示しています。このアーキテクチャにより、クラスターはホットアップグレードをサポートできます。障害やメンテナンスはユーザーに対して透過的であり、サービスに影響を与えません。
ホットアップグレード中に、3 ウェイハンドシェイクが完了していない場合や、確立された接続がまだセッション同期をトリガーしていない場合、接続が中断されることがあります。このような場合、クライアントは再接続する必要があります。

インバウンドトラフィックパス
インバウンドトラフィックの場合、CLB は、コンソールまたは開発者ポータルで設定した転送ルールに基づいてリクエストを転送および処理します。次の図は、データフローを示しています。
図 1. インバウンドトラフィックパス
-
すべての TCP、UDP、HTTP、および HTTPS トラフィックは、レイヤー 4 クラスターを通過します。
-
レイヤー 4 クラスター内の各ノードは、大量のリクエストを均等に分散し、ノード間のセッション同期ポリシーによって高可用性を確保します。
-
CLB インスタンスのリスナーがレイヤー 4 プロトコル (TCP または UDP) を使用する場合、レイヤー 4 クラスター内の各ノードは、CLB インスタンスの転送ルールに基づいて、リクエストをバックエンドの Elastic Compute Service (ECS) インスタンスに直接分散します。
-
CLB インスタンスのリスナーがレイヤー 7 の HTTP プロトコルを使用する場合、レイヤー 4 クラスター内の各ノードは、まずリクエストをレイヤー 7 クラスターに均等に分散します。次に、レイヤー 7 クラスター内の各ノードが、CLB インスタンスの転送ルールに基づいて、リクエストをバックエンドの ECS インスタンスに分散します。
-
CLB インスタンスのリスナーがレイヤー 7 の HTTPS プロトコルを使用する場合、プロセスは HTTP の場合と似ています。ただし、リクエストをバックエンドの ECS インスタンスに分散する前に、CLB はキーサーバーを呼び出して証明書検証とパケットの暗号化および復号を実行します。
-
アウトバウンドトラフィックパス
CLB とバックエンドの ECS インスタンスは、内部ネットワークを介して相互に通信します。
-
ご利用の ECS インスタンスが CLB からのリクエストのみを処理する場合、ECS インスタンス用のパブリック IP アドレス、Elastic IP アドレス (EIP)、Anycast EIP、または NAT ゲートウェイなどのパブリック帯域幅リソースを購入する必要はありません。
説明一部の古い ECS インスタンスには、パブリック IP アドレスが直接割り当てられていました。このアドレスは、インスタンスで
ipconfigコマンドを実行することで確認できます。これらのインスタンスが CLB を通じてのみトラフィックを処理する場合、Elastic Network Interface でトラフィック統計が表示されていても、ECS インスタンスのパブリックネットワーク料金は発生しません。 -
バックエンドの ECS インスタンスが外部トラフィックを直接処理する必要がある場合や、インターネットアクセスが必要な場合は、パブリック IP アドレス、EIP、Anycast EIP、または NAT ゲートウェイなど、インスタンスに必要なサービスを設定または購入する必要があります。
次の図は、ECS インスタンスのパブリックトラフィックパスを示しています。
図 2. アウトバウンドトラフィックパス
原則として、トラフィックは進入時と同じパスを経由して外部に出ます。
-
CLB を経由するトラフィックは、CLB インスタンスで速度制限または課金が行われます。CLB と ECS インスタンス間の通信は Alibaba Cloud の内部ネットワーク上で行われ、パブリックトラフィック料金は発生しません。
-
EIP または NAT ゲートウェイからのトラフィックは、それぞれのリソースで速度制限または課金が行われます。ECS インスタンスの作成時にパブリック帯域幅を購入した場合、速度制限と課金はインスタンスレベルで行われます。
-
CLB は、応答型のインターネットアクセスのみを提供します。これは、バックエンドの ECS インスタンスが、CLB によって転送されたリクエストに応答するためにのみインターネットにアクセスできることを意味します。バックエンドの ECS インスタンスがアウトバウンド接続を開始できるようにするには、インスタンスに EIP を関連付けるか、NAT ゲートウェイの背後に配置する必要があります。
-
ECS インスタンス、EIP、Anycast EIP、または NAT ゲートウェイに設定されたパブリック帯域幅は、インスタンスに双方向のインターネットアクセスを提供します。ただし、これらのリソースはトラフィック分散や負荷分散機能を提供しません。
よくある質問
CLB の帯域幅計算
いいえ。
CLB インスタンスの帯域幅は、インバウンドトラフィックとアウトバウンドトラフィックに個別に適用されます。Alibaba Cloud は、購入した帯域幅を各方向に割り当てます。したがって、インバウンドとアウトバウンドの両方のトラフィックが、それぞれ独立して最大帯域幅ピークに達することができます。
詳細については、「帯域幅の制限」をご参照ください。