Elastic Load Balancing

スケーラビリティ、パフォーマンス、セキュリティを高めてあらゆるアプリケーションのフォルトトレランスを実現。

Elastic Load Balancing は、アプリケーションへのトラフィックを複数のターゲット (Amazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数など) に自動的に分散します。Elastic Load Balancing は、変動するアプリケーショントラフィックの負荷を、1 つのアベイラビリティーゾーンまたは複数のアベイラビリティーゾーンで処理できます。Elastic Load Balancing では、3 種類のロードバランサーが用意されています。これらはすべて、アプリケーションの耐障害性を高めるのに必要な高い可用性、自動スケーリング、堅牢なセキュリティを特徴としています。

Application Load Balancer


Application Load Balancer は、HTTP トラフィックおよび HTTPS トラフィックの負荷分散に最適です。Application Load Balancer を使用すると、マイクロサービスやコンテナといった最新のアプリケーションアーキテクチャを対象とした高度なリクエストルーティングを実現できます。Application Load Balancer は、独立したリクエストレベル (レイヤー 7) で動作し、リクエストの内容に基づいて、Amazon Virtual Private Cloud (Amazon VPC) にあるターゲットにトラフィックをルーティングします。

Network Load Balancer


Network Load Balancer は、きわめて高いパフォーマンスが要求される Transmission Control Protocol (TCP)、User Datagram Protocol (UDP) および Transport Layer Security (TLS) におけるトラフィックの負荷分散に最適です。Network Load Balancer は、接続レベル (レイヤー 4) で動作し、Amazon Virtual Private Cloud (Amazon VPC) にあるターゲットにトラフィックをルーティングします。また、きわめて低いレイテンシーを維持しながら、1 秒間に何百万ものリクエストを処理できます。Network Load Balancer は、突発的なトラフィックパターンや急変するトラフィックパターンを処理できるように最適化されてもいます。

Classic Load Balancer


Classic Load Balancer は、複数の Amazon EC2 インスタンスにおける基本的な負荷分散を提供し、リクエストレベルと接続レベルの両方で動作します。Classic Load Balancer は、EC2-Classic ネットワーク内で構築されたアプリケーションを対象としています。

利点

高い可用性

Elastic Load Balancing では、受信トラフィックが複数のアベイラビリティーゾーンにある複数のターゲット (Amazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数など) に分散され、健全なターゲットによってのみトラフィックが受信されます。また、Elastic Load Balancing を使用すると、リージョン内での負荷分散が可能となり、異なるアベイラビリティーゾーンにある健全なターゲットにトラフィックがルーティングされます。Amazon Elastic Load Balancing サービスレベルアグリーメントは、99.99% の可用性を誇っています。

セキュア

Elastic Load Balancing は、Amazon Virtual Private Cloud (VPC) とともに機能し、証明書管理、ユーザー認証および SSL/TLS 復号の統合といった堅牢なセキュリティ機能を提供します。これらが組み合わされることで、TLS 設定を柔軟に集中管理し、CPU を集中的に使用するアプリケーションの負荷を柔軟にオフロードできるようになります。

弾力性

Elastic Load Balancing は、ネットワークトラフィックパターンの急速な変化に対応できます。また、Auto Scaling との密接な統合により、手動での操作を必要とすることなく、さまざまなレベルのアプリケーション負荷に対応することが可能となり、アプリケーションの性能を十分に発揮させることができます。

柔軟性

Elastic Load Balancing では、IP アドレスを使用してアプリケーションターゲットにリクエストをルーティングできます。これにより、アプリケーションターゲットを柔軟に仮想化することが可能となり、同じインスタンスでより多くのアプリケーションをホストできるようになります。また、同じネットワークポートを使用しながら各ターゲットアプリケーションに対して個別にセキュリティグループを設定することが可能となり、マイクロサービスベースのアーキテクチャーにおけるアプリケーション間通信がさらに簡素化されます。

堅牢なモニタリングと監査

Elastic Load Balancing を使用すると、Amazon CloudWatch メトリクス、ロギング、リクエスト追跡を用いてアプリケーションとそのパフォーマンスをリアルタイムでモニタリングできるようになります。これにより、アプリケーションの動作をより詳細に把握することが可能となり、問題の発見およびアプリケーションスタックにおけるパフォーマンスボトルネックの特定を、リクエスト単位で細かく行えるようになります。

ハイブリッド負荷分散

Elastic Load Balancing によって、同じロードバランサーを使用して、AWS およびオンプレミスのリソースにかけての負荷分散が可能になります。これにより、オンプレミスアプリケーションのクラウドへの移行、バースト、フェイルオーバーが簡単になります。

ユースケース

優れたフォルトトレランスを持つアプリケーションを実現

Elastic Load Balancing は、健全なターゲットによってのみトラフィックが受信されるようにしつつ、ターゲット (Amazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数) および複数のアベイラビリティーゾーンの間で自動的にトラフィックを分散することで、アプリケーションの耐障害性を実現します。1 つのアベイラビリティーゾーンにあるすべてのターゲットが健全でない場合、Elastic Load Balancing によって、他のアベイラビリティーゾーンにある健全なターゲットにトラフィックがルーティングされます。ターゲットが健全な状態に戻ると、負荷分散の対象が自動的に元のターゲットへ戻ります。

コンテナ化されたアプリケーションの自動負荷分散

Elastic Load Balancing におけるコンテナのサポートが強化され、同じ Amazon EC2 インスタンスにある複数のポート間で負荷を分散できるようになりました。また、Amazon EC2 Container Service (ECS) との密接な統合により、コンテナを完全に管理することが可能となりました。ロードバランサーにサービスを登録するだけで、Docker コンテナの登録と登録解除が透過的に管理されます。ロードバランサーはポートを自動的に検出し、ロードバランサー自体を動的に再設定します。

アプリケーションの自動スケーリング

Elastic Load Balancing を使用すると、お客様の要求に応じてアプリケーションが確実にスケーリングされます。いずれかの EC2 インスタンスのレイテンシーがあらかじめ設定されたしきい値を超えたときに、Amazon EC2 インスタンス群に対する Auto Scaling がトリガーされるため、お客様の新たな要求に常に応えることができます。

Amazon Virtual Private Cloud (Amazon VPC) で Elastic Load Balancing を使用する

Elastic Load Balancing を使用すると、インターネットから VPC へのエントリポイントを作成することや、VPC 内の各アプリケーション層へのリクエストトラフィックのルーティングが容易になります。ロードバランサーにセキュリティグループを割り当て、許可されているソースのリストに対してどのポートを開けるかをコントロールすることができます。Elastic Load Balancing が VPC に統合されているため、既存のネットワークアクセスコントロールリスト (ACL) およびルーティングテーブルのすべてが、追加のネットワークコントロールを継続的に提供します。

ロードバランサーを VPC 内に作成するときは、そのロードバランサーがインターネットに接するか (デフォルト)、内部的なものかを指定できます。「内部的」を選択した場合は、そのロードバランサーに到達するためのインターネットゲートウェイは不要であり、ロードバランサーのプライベート IP アドレスがロードバランサーの DNS レコード内で使用されます。

Elastic Load Balancing によるハイブリッド負荷分散

Elastic Load Balancing によって、同じロードバランサーを使用して、AWS およびオンプレミスのリソースにかけての負荷分散が可能になります。例えば、AWS とオンプレミスの両方のリソースにかけてアプリケーションのトラフィックを分散する必要がある場合、すべてのリソースを同じターゲットグループに登録し、そのターゲットグループをロードバランサーに関連付けることでこれを達成できます。あるいは、AWS のリソースに 1 つのロードバランサーを使用し、オンプレミスのリソースにもう 1 つのロードバランサーを使用することで、DNS ベースの重み付け負荷分散を AWS およびオンプレミスのリソースにかけて実行することもできます。

また、片方のアプリケーションが VPC にあり、もう片方のアプリケーションがオンプレミスにある場合、ハイブリッドな負荷分散を利用することで、それぞれのアプリケーションにメリットをもたらすことができます。VPC のターゲットを 1 つのターゲットグループに、オンプレミスのターゲットを別のターゲットグループに入れ、コンテンツベースのルーティングを使用することで、各ターゲットグループにトラフィックをルーティングできます。

HTTP(S) 経由での Lambda 関数の呼び出し

Elastic Load Balancing は、Lambda 関数を呼び出して HTTP(S) リクエストに対応これにより、ユーザーはウェブブラウザを含む任意の HTTP クライアントからサーバーレスアプリケーションにアクセスできます。Lambda 関数をターゲットとして登録し、Application Load Balancer でコンテンツベースのルーティングルールがサポートされていることを利用して、リクエストを異なる Lambda 関数にルーティングします。Application Load Balancer は、サーバーおよびサーバーレスコンピューティングを使用するアプリケーションの共通の HTTP エンドポイントとして使用できます。Lambda 関数を使用してウェブサイト全体を構築したり、EC2 インスタンス、コンテナ、オンプレミスサーバー、Lambda 関数を組み合わせてアプリケーションを構築することができます。​

ブログ投稿と記事

最新情報 – AWS Application Load Balancer の高度なリクエストルーティング
Jeff Barr 
 
2019 年 3 月 27 日
Product-Page_Standard-Icons_01_Product-Features_SqInk
Elastic Load Balancing の詳細

特徴のページにアクセスする

詳細はこちら 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
Product-Page_Standard-Icons_03_Start-Building_SqInk
AWS コンソールで構築を開始する

AWS コンソールで Elastic Load Balancing を開始する。

サインイン