Elastic Load Balancing
Application Load Balancer

Application Load Balancer とは

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

Application 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 アドレスを同じターゲットグループに登録できます。

  • 1 つの URL から別の URL へのリクエストのリダイレクトのサポート。

  • カスタム HTTP レスポンスの出力のサポート。

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

  • ターゲットとしての Lambda 関数の登録のサポート。

  • リクエストをルーティングする前に企業 ID またはソーシャル ID を通じてアプリケーションのユーザーを認証するロードバランサーのサポート。

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

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

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

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

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

開始方法

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

Elastic Load Balancing は、アプリケーションの可用性とスケーラビリティを高める以下のサービスを使用します。

  • [Amazon EC2] — クラウドでアプリケーションを実行する仮想サーバーです。EC2 インスタンスへのトラフィックをルーティングするように、ロードバランサーを設定できます。

  • [Amazon EC2 Auto Scaling] — インスタンスに障害が発生した場合でも必要なインスタンスの実行数を保証し、需要の変化に応じて自動的にインスタンス数を増減できるようにします。Elastic Load Balancing を使用して Auto Scaling を有効にした場合、Auto Scaling によって起動されたインスタンスは自動的にロードバランサーに登録され、Auto Scaling によって終了されたインスタンスは自動的にロードバランサーから登録解除されます。

  • AWS Certificate Manager — HTTPS リスナーを作成するには、ACM で提供された証明書を指定できます。ロードバランサーは、証明書を使用して接続を終了し、クライアントからのリクエストを復号します。詳細については、「SSL 証明書」を参照してください。

  • [Amazon CloudWatch] — ロードバランサーを監視し、必要に応じてアクションを実行することができます。詳細については、「Application Load Balancer の CloudWatch メトリクス」を参照してください。

  • [Amazon ECS] — EC2 インスタンスのクラスターで Docker コンテナを実行、停止、管理することができます。コンテナにトラフィックをルーティングするように、ロードバランサーを設定できます。詳細については、Amazon Elastic Container Service Developer Guideの「サービスロードバランシング」を参照してください。

  • [Route 53] — ドメイン名 (www.example.comなど) を、コンピュータが相互の接続に使用する数字の IP アドレス (192.0.2.1など) に変換することで、閲覧者をウェブサイトにルーティングするための信頼性が高く、コスト効率のよい方法を提供します。ロードバランサーなどのリソースには、AWS により URL が割り当てられます。ただし、ユーザーが覚えやすい URL を使用することもできます。たとえば、ドメイン名をお客様のロードバランサーにマッピングすることができます。

  • AWS WAF — Application Load Balancer で AWS WAF を使用して、ウェブアクセスコントロールリスト (ウェブ ACL) のルールに基づいてリクエストを許可またはブロックできます。詳細については、「Application Load Balancer および AWS WAF」を参照してください。

ロードバランサーに統合されたサービスに関する情報を表示するには、AWS マネジメントコンソールでロードバランサーを選択し、[統合されたサービス] タブを選択します。

料金表

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