メニュー
Elastic Load Balancing
Application Load Balancers

Application Load Balancer とは

Elastic Load Balancing は 2 種類のロードバランサー (Application Load BalancerおよびClassic Load Balancer) をサポートします。このガイドでは、Application Load Balancerについて説明します。Classic Load Balancerの詳細については、「Classic Load Balancer ガイド」を参照してください。

Application Load Balance の概要

Application Load Balancerは、開放型システム間相互接続 (OSI) モデルの第 7 層であるアプリケーションレイヤーで機能します。このロードバランサーは、HTTP メッセージ内のアプリケーショントラフィックの内容に基づいてルーティング先を決定します。

このロードバランサーは、受信アプリケーショントラフィックを複数のアベイラビリティーゾーンの複数のターゲット(EC2 インスタンスなど) に分散します。これにより、アプリケーションの耐障害性が高まります。Elastic Load Balancing は異常なターゲットを検出し、正常なターゲットにのみトラフィックをルーティングします。

ロードバランサーは、クライアントにとって単一の通信先として機能します。これにより、アプリケーションの可用性が向上します。アプリケーションへのリクエストの流れを中断することなく、ニーズの変化に応じてロードバランサーに対してターゲットの追加と削除を行うことができます。Elastic Load Balancing はアプリケーションへのトラフィックが時間の経過とともに変化するのに応じてロードバランサーをスケーリングします。Elastic Load Balancing は、大半のワークロードに合わせて自動的にスケーリングできます。

登録済みのインスタンスのヘルス状態をモニタリングするために使用されるヘルスチェックを設定することで、ロードバランサーは正常なターゲットにのみリクエストを送信できます。

詳細については、Elastic Load Balancing ユーザーガイド の「Elastic Load Balancing の仕組み」を参照してください。

コンポーネント

このロードバランサーは、クライアントにとって単一の通信先として機能します。ロードバランサーに 1 つ以上のリスナーを追加できます。

リスナーは、ユーザーが設定したプロトコルとポートを使用してクライアントからの接続リクエストを確認し、ユーザーが定義したルールに基づいて 1 つ以上のターゲットグループにリクエストを転送します。各ルールは、ターゲットグループ、条件、優先順位を指定します。条件が満たされると、トラフィックがターゲットグループに転送されます。リスナーごとにデフォルトのルールを定義する必要があり、リクエストの内容に基づいて異なるターゲットグループを指定するルールを追加できます(内容に基づくルーティングとも呼ばれます)。

ターゲットグループは、指定されたプロトコルとポート番号を使用して、1 つ以上の登録済みのターゲット (EC2 インスタンスなど) にリクエストをルーティングできます。1 つのターゲットを複数のターゲットグループに登録できます。ターゲットグループ単位でヘルスチェックを設定できます。ヘルスチェックは、ロードバランサーのリスナールールに指定されたターゲットグループに登録されたすべてのターゲットで実行されます。

次の図に、基本コンポーネントを示します。各リスナーにデフォルトのルールがあり、1 つのリスナーにリクエストを別のターゲットグループにルーティングする別のルールが含まれていることに注意してください。1 つのターゲットが 2 つのターゲット グループに登録されています。

基本的なApplication Load Balancerのコンポーネント

詳細については、次のドキュメントを参照してください。

メリット

Classic Load Balancerに代わるApplication Load Balancerの使用には、次のメリットがあります。

  • パスベースのルーティングのサポート。リクエスト内の URL に基づいてリクエストを転送するリスナーのルールを設定できます。これにより、アプリケーションをより小さなサービスとして構成し、URL の内容に基づいて適切なサービスにリクエストをルーティングできます。

  • 複数のポートを使用するインスタンスの登録による、単一の EC2 インスタンスの複数のサービスへのリクエストのルーティングのサポート。

  • コンテナ化されたアプリケーションのサポート。Amazon EC2 Container Service (Amazon ECS) は、タスクをスケジュールするときに未使用のポートを選択し、そのポートを使用するターゲットグループにタスクを登録できます。これにより、クラスターを効率的に使用することができます。

  • 各サービスの個別のヘルスステータスのモニタリングのサポート。ヘルスチェックがターゲットグループレベルで定義され、多数の CloudWatch メトリクスがターゲットグループレベルで報告されます。ターゲットグループを Auto Scaling グループにアタッチすることで、各サービスをオンデマンドで動的にスケールすることができます。

  • アクセスログへの情報の追加と圧縮形式での保存。

  • ロードバランサーのパフォーマンスの向上。

各ロードバランサーでサポートされる機能の詳細については、Elastic Load Balancing ユーザーガイド の「Elastic Load Balancing の機能」を参照してください。

開始方法

Application Load Balancerを作成するには、次のいずれかのチュートリアルに従います。

料金表

詳細については、Application Load Balancer 料金表を参照してください。