すべてのプロダクト
Search
ドキュメントセンター

Server Load Balancer:サービスアーキテクチャ

最終更新日:Sep 20, 2024

Classic Load Balancer (CLB) はクラスターにデプロイされ、レイヤー4 (TCPおよびUDP) とレイヤー7 (HTTPおよびHTTPS) の負荷分散サービスを提供します。 CLBはセッションを同期し、単一障害点 (SPOF) を排除して冗長性を向上させ、サービスの安定性を確保します。

基本アーキテクチャ

CLBはCLBクラスターを使用してクライアント要求をバックエンドサーバーに転送し、内部ネットワークを介してバックエンドサーバーから応答を受信します。

CLBは、レイヤー4とレイヤー7で負荷分散サービスを提供します。

  • CLBは、専用のレイヤー4クラスターを使用して、レイヤー4で負荷分散を実装します。

  • CLBは、専用のレイヤー7クラスターを使用してレイヤー7で負荷分散を実装します。 従来の自己管理型NGINXクラスターと比較して、専用のレイヤー7クラスターは高度な機能をサポートし、大量のトラフィックを処理する必要があるシナリオやHTTPSトラフィックのSSLオフロードが必要なシナリオに最適化されたパフォーマンスを提供します。

    image

次の図に示すように、CLBは、各リージョンの複数のノードで構成される専用のレイヤー4クラスターで実行されます。 クラスター展開モードは、さまざまなシナリオにわたる負荷分散サービスの可用性、安定性、およびスケーラビリティを向上させます。

image

専用のレイヤー4クラスター内の各バックエンドサーバーは、マルチキャストパケットを使用してクラスター全体のセッションを同期します。 次の図に示すように、クライアントがサーバーに3つのパケットを送信した後、サーバー1で確立されたセッションAは他のサーバーと同期されます。 実線は、アクティブな接続を示す。 破線は、サーバ1が故障した場合または保守中である場合に、要求が他の正常なサーバ (この場合はサーバ2) に送信されることを示す。 これにより、アプリケーションが提供するサービスに影響を与えることなく、ホットアップグレードの実行、サーバーのトラブルシューティング、クラスターのオフラインメンテナンスを行うことができます。

説明

3ウェイハンドシェイクが失敗したために接続が確立されなかった場合、またはホットアップグレード中に接続が確立されているがセッションが同期されていない場合、サービスが中断される可能性があります。 この場合、クライアントからの接続要求を再度開始する必要があります。

image

受信トラフィックフロー

CLBは、CLBコンソールで設定した転送ルールに基づいて、またはAPI操作を使用して、インバウンドトラフィックを分散します。 次の図は、インバウンドトラフィックフローを示しています。

図 1. 受信トラフィックフロー

image
  1. TCP、UDP、HTTP、またはHTTPSを使用するインバウンドトラフィックは、レイヤー4クラスターを介して転送する必要があります。

  2. 大量のインバウンドトラフィックは、レイヤー4クラスター内のすべてのノードに均等に分散され、ノードはセッションを同期して高可用性を確保します。

    • UDPまたはTCPに基づくレイヤー4リスナーがCLBインスタンスで使用されている場合、レイヤー4クラスターのノードは、CLBインスタンスに設定された転送ルールに基づいて、リクエストをバックエンドのElastic Compute Service (ECS) インスタンスに直接配信します。

    • HTTPベースのレイヤー7リスナーがCLBインスタンスで使用されている場合、レイヤー4クラスターのノードは最初にリクエストをレイヤー7クラスターに配信します。 次に、レイヤー7クラスターのノードは、CLBインスタンスに設定された転送ルールに基づいて、バックエンドECSインスタンスにリクエストを配信します。

    • HTTPSベースのレイヤー7リスナーがCLBインスタンスで使用されている場合、リクエストは、HTTPベースのリスナーを使用するCLBインスタンスによるリクエストの配信と同様の方法で配信されます。 違いは、リクエストがバックエンドECSインスタンスに配信される前に、システムがKey Serverを呼び出して証明書を検証し、データパケットを復号化することです。

アウトバウンドトラフィックフロー

CLBとバックエンドECSインスタンスは、内部ネットワークを介して通信します。

  • バックエンドECSインスタンスがCLBから配信されたトラフィックのみを処理する場合、ECSインスタンス用のパブリックIPアドレス、elastic IPアドレス (EIP) 、Anycast EIP、NAT Gatewayなどのインターネット帯域幅リソースを購入する必要はありません。

    説明

    以前に作成されたECSインスタンスには、パブリックIPアドレスが直接割り当てられます。 ipconfigコマンドを実行すると、パブリックIPアドレスを表示できます。 ECSインスタンスがCLBのみを介して外部サービスを提供する場合、elastic network Interface (ENI) でトラフィック統計が読み取られても、インターネットトラフィックのトラフィック料金は発生しません。

  • バックエンドECSインスタンスが外部サービスを直接提供するか、インターネットにアクセスする場合は、インスタンスのパブリックIPアドレス、EIP、Anycast EIP、またはNATゲートウェイを設定または購入する必要があります。

次の図は、アウトバウンドトラフィックフローを示しています。

図2. アウトバウンドトラフィックフロー

image

アウトバウンドトラフィックがどのように流れるかの一般的な原則は、トラフィックが入ってくる場所から出ることです。

  • CLBインスタンスを流れるトラフィックは、CLBインスタンスでスロットリングまたは課金されます。 CLBインスタンスとバックエンドECSインスタンス間の内部通信に対しては課金されません

  • EIPまたはNAT Gatewayからのトラフィックに対して課金されます。 EIPまたはNATゲートウェイのトラフィック速度を制限できます。 パブリック帯域幅リソースがECSインスタンスに設定されている場合、ECSインスタンスからのトラフィックに対して課金され、ECSインスタンスのトラフィック速度を抑制できます。

  • CLBは、インターネットへの応答アクセスをサポートします。 バックエンドECSインスタンスは、インターネットからのリクエストに応答する必要がある場合にのみ、インターネットにアクセスできます。 リクエストは、CLBインスタンスによってバックエンドECSインスタンスに転送されます。 バックエンドECSインスタンスがインターネットにプロアクティブにアクセスする必要がある場合、EIPをECSインスタンスに関連付けるか、NAT Gatewayを使用する必要があります。

  • ECSインスタンス、EIP、Anycast EIP、およびNATゲートウェイに設定されたパブリック帯域幅リソースにより、ECSインスタンスはインターネットにアクセスしたり、インターネットからアクセスしたりできますが、上記のリソースではトラフィックを分散したり、トラフィック負荷を分散したりできません。