Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

ロードバランサーの種類

Elastic Load Balancing では、次の種類のロードバランサー (Application Load Balancer、ネットワークロードバランサー、および Classic Load Balancer) がサポートされます。Amazon ECS サービスではいずれのタイプのロードバランサーも使用できます。Application Load Balancer は、HTTP/HTTPS (またはレイヤー 7) トラフィックをルーティングするために使用されます。ネットワークロードバランサー と Classic Load Balancer は、TCP (またはレイヤー 4) トラフィックをルーティングするために使用されます。

Application Load Balancer

Application Load Balancer では、アプリケーションレイヤー (HTTP/HTTPS) にてルーティング決定を行い、パスベースのルーティングをサポートします。また、クラスター内の各コンテナインスタンスの 1 つまたは複数のポートにリクエストをルーティングできます。Application Load Balancer では、動的ホストポートマッピングをサポートしています。たとえば、タスクコンテナ定義で NGINX コンテナポートのポート 80、ホストポートのポート 0 を指定した場合、ホストポートはコンテナインスタンスの一時ポート範囲から動的に選択されます (最新の Amazon ECS に最適化された AMI の 32768~61000 など)。タスクの起動時に、NGINX コンテナは、インスタンス ID およびポートの組み合わせとして Application Load Balancer で登録されます。トラフィックは、コンテナに対応するインスタンス ID およびポートに分散されます。この動的なマッピングにより、同じコンテナインスタンスの単一のサービスから複数のタスクを持つことができます。詳細については、「Application Load Balancer 用ユーザーガイド」を参照してください。

 Application Load Balancer

ネットワークロードバランサー

ネットワークロードバランサー により、トランスポートレイヤー (TCP/SSL) でルーティングの決定が行われます。毎秒数百万のリクエストを処理できます。ロードバランサーは、接続を受信すると、フローハッシュルーティングアルゴリズムを使用してデフォルトルールのターゲットグループからターゲットを選択します。リスナー構成で指定されたポート上の選択したターゲットへの TCP 接続を開こうとします。ヘッダーを変更せずにリクエストを転送します。ネットワークロードバランサー では、動的ホストポートマッピングをサポートしています。たとえば、タスクコンテナ定義で NGINX コンテナポートのポート 80、ホストポートのポート 0 を指定した場合、ホストポートはコンテナインスタンスの一時ポート範囲から動的に選択されます (最新の Amazon ECS に最適化された AMI の 32768~61000 など)。タスクの起動時に、NGINX コンテナは、インスタンス ID およびポートの組み合わせとして ネットワークロードバランサー で登録されます。トラフィックは、コンテナに対応するインスタンス ID およびポートに分散されます。この動的なマッピングにより、同じコンテナインスタンスの単一のサービスから複数のタスクを持つことができます。詳細については、「Network Load Balancer 用ユーザーガイド」を参照してください。

 ネットワークロードバランサー

Classic Load Balancer

Classic Load Balancer では、トランスポートレイヤー (TCP/SSL) またはアプリケーションレイヤー (HTTP/HTTPS) のいずれかでルーティング決定を行います。Classic Load Balancer では現在、ロードバランサーのポートとコンテナインスタンスのポートとの間の一定の関係が必要です。たとえば、ロードバランサーのポート 80 をコンテナインスタンスのポート 3030 に、またロードバランサーのポート 4040 をコンテナインスタンスのポート 4040 にマッピングできます。ただし、ロードバランサーのポート 80 を 1 つのコンテナインスタンスのポート 3030 および別のコンテナインスタンスのポート 4040 にマッピングすることはできません。この静的マッピングでは、少なくとも Classic Load Balancer を使用する単一のサービスの必要数と同じ数のコンテナインスタンスがクラスターに存在する必要があります。詳細については、「クラシックロードバランサー 用ユーザーガイド」を参照してください。

 Classic Load Balancer