メニュー
Elastic Load Balancing
Application Load Balancer

Application Load Balancer とは

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

コンポーネント

ロードバランサーは、クライアントにとって単一の通信先として機能します。このロードバランサーは、受信アプリケーショントラフィックを複数のアベイラビリティーゾーンの複数のターゲット(EC2 インスタンスなど) に分散します。これにより、アプリケーションの可用性が向上します。ロードバランサーに 1 つ以上のリスナーを追加できます。

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

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

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

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

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

Application Load Balancer の概要

Application Load Balancerは、開放型システム間相互接続 (OSI) モデルの第 7 層であるアプリケーションレイヤーで機能します。ロードバランサーはリクエストを受信すると、優先度ルールでリスナールールを評価して適用するルールを決定し、ラウンドロビンルーティングアルゴリズムを使用してルールアクションのターゲットグループからターゲットを選択します。リスナールールを構成し、アプリケーショントラフィックのコンテンツに基づいて異なるターゲットグループに要求をルーティングできることに注意してください。それぞれのターゲットグループでルーチングは個別に実行され、複数のターゲットグループに登録されているターゲットの場合も同じです。

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

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

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

Classic Load Balancer からの移行のメリット

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

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

  • ホストベースのルーティングのサポート。HTTP ヘッダー内のホストフィールドに基づいてリクエストを転送するリスナーのルールを設定できます。これにより、1 つのロードバランサーを使用して複数のドメインにリクエストをルーティングできます。

  • 1 つの EC2 インスタンス上での複数のアプリケーションへのルーティングリクエストのサポート。複数のポートを使用して、各インスタンスまたは IP アドレスを同じターゲットグループに登録できます。

  • ロードバランサーの VPC 外のターゲットを含め、IP アドレスによるターゲットの登録をサポート。

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

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

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

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

各ロードバランサーの種類でサポートされている機能の詳細については、「Elastic Load Balancing 製品の比較」を参照してください。

開始方法

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

料金表

ロードバランサーについては、お客様が利用された分のみのお支払いとなります。詳細については、Elastic Load Balancing 料金表を参照してください。