ポイント: AWS Elastic Load Balancingは、受信トラフィックを複数のEC2インスタンスに分散させ、インスタンスの健康を監視することでアプリケーションの可用性とスケーラビリティを向上させます。Classic、Application、およびNetwork Load Balancerがあり、さまざまなニーズに対応しています。
- 健康でないインスタンスからのトラフィックを自動的に再ルーティングし、パフォーマンスを維持します。
- コンテナやマイクロサービスを含むさまざまなアプリケーションをサポートし、動的なスケーリング機能を提供します。
AWS Elastic Load Balancingは、適切に複数のEC2インスタンス、弾力的なコンピュートクラウドサーバー、コンテナー、IPアドレス間で受信トラフィックをルーティングすることを可能にします。単一または複数のアベイラビリティゾーン内でのトラフィック/ワークロードの分配は自動的に行われ、ユーザーはアプリケーションの使用需要が増加するに従ってコンピュート能力をスケーリングしつつ高い可用性を維持できます。ロードバランサーがエンドユーザーからのアプリケーションへのアクセスリクエストを受け取ると、ターゲットインスタンスの健康状態に基づいてトラフィックをルーティングします。常に健康なインスタンスにユーザーリクエストが送られるように健康状態を継続的に監視します。不健康なインスタンスが検出された場合、ロードバランサーは自動的に他の健康なターゲットにすべてのトラフィックをルーティングします。サーバーが健康な状態に戻ると、リクエストはサーバーにルーティングされます。Elastic Load Balancing機能を使用すると、ユーザーはリスナーのプロトコルとポートを構成します。リスナーはクライアントとロードバランサー、およびロードバランサーとインスタンスターゲット間の接続リクエストを識別するプロセスです。リスナーは、クライアントとバックエンドインスタンス間のトラフィックをルーティングするために、事前に定義されたルールとポリシーに従います。これらのルールは、AWSリソースに記載された構成可能な優先度、条件、およびアクションに基づいて評価されます。
Elastic Load Balancingの種類
ELBサービスは2009年に開始され、トラフィックをルーティングし、インスタンスの健康チェックを行い、AWSホストアプリの可用性と耐障害性を最大化するために応答するためのソフトウェアベースの負荷分散機能を提供します。その負荷分散サービスは現在、Classic Load Balancer(CLB)であり、AWSはその後、負荷分散ポートフォリオに2つの新しい強化サービスを追加しました: Application Load Balancer(ALB)とNetwork Load Balancer(NLB)。
Classic Load Balancer
Classic Load Balancerは、主にOSIモデルのレベル4でEC2インスタンスネットワークに対してバランシングサービスを提供するように開発されました。ほとんどのWebアプリケーションは、レベル4トランスポート層でTCP/IPプロトコルを使用し、場合によってはUDPプロトコルも使用します。ただし、AWSの負荷分散サービスは現在UDPをサポートしていません。Classic Load Balancerは、受信リクエストからのプロトコルとポート番号の情報を使用して、Webアプリケーションをホストする適切なAWS EC2インスタンスにトラフィックをルーティングします。このプロセスは、物理デバイスを使用して負荷分散の目的でトラフィックをルーティングする従来の方法に似ていますが、CLBはこのタスクを効率的かつ自動的に仮想環境内で実行します。Classic Load Balancingのほとんどの機能は、Application Load BalancerおよびNetwork Load Balancerの両方で提供されます。これには次のようなものが含まれます:
- トラフィック容量要件の変化に応じた自動スケーリングを含む高可用性分配。
- ターゲットEC2インスタンスの健康チェック。不健康なターゲットは、サーバーが最適なパフォーマンス能力を回復するまで自動的にオフロードされます。
- 追加のネットワークおよびセキュリティ管理のためのセキュリティグループ、内部CLBを作成する能力を含みます。
- ターゲットEC2サーバーの暗号化、暗号スイートおよびプロトコルの制御、SSL復号のオフロードを含むSSL証明書の集中管理。
- クッキーを使用してユーザーを同じターゲットインスタンスにルーティングするためのSticky Sessions。このサービスはApplication Load Balancerでは利用できません。
- ネットワークパフォーマンスおよびトラフィック要件に関連するイベントに基づいてアクションをトリガーするためのCloudWatchメトリクスレポートによる運用監視。
- それぞれTCPおよびHTTP/HTTPSに依存するアプリケーションのためのIPv4およびIPv6のサポート。
- 診断および分析のための負荷分散リクエストのログ記録。
Application Load Balancer
ALBは、OSIモデルのレイヤー7でHTTP/HTTPSトラフィックの負荷分散を可能にし、コンテナー、IPアドレス、EC2サーバー、Lambda関数、およびマイクロサービスを含む最新のアプリケーションアーキテクチャにトラフィックをルーティングできます。ALBはCLBに対して次の機能強化を提供します:
- HTTPヘッダーに指定された情報に基づくパスベースのルーティング。リスナーは、異なるURLコンテンツを適切なアプリケーションサービスにルーティングするように構成できます。
- ホストベースのルーティングは、同じALBから複数のURLドメインをルーティングするためのリスナーの構成を可能にします。
- 異なるURL間のリクエストをリダイレクトし、カスタムHTTPレスポンスを返すか、IPアドレスに基づいてトラフィックをルーティングします。
- AWS Lambda関数およびコンテナ化されたアプリケーションをサポートし、クラスター資源の利用を最大化します。
- 特定のターゲットインスタンスに接続された独立したアプリケーションサービスの動的自動スケーリング。各アプリケーションサービスは独立して監視することもできます。
- トラフィックをルーティングする前にユーザー認証などのセキュリティ機能。
- ログデータには追加情報が含まれます。ALBの全体的なパフォーマンスはCLBよりも優れています。
Network Load Balancer
NLBによる負荷分散はレイヤー4、トランスポート層で行われます。Network Load Balancerは、クライアントとターゲットシステム間の数百万のルーティングリクエストをIPアドレス、TCPおよびポート番号を使用して処理することができます。Network Load Balancerは、Application Load Balancerのパスおよびホストベースのルーティング、Sticky Sessions機能を提供しませんが、AWS Classic Load Balancerに対して次の利点を提供します:
- 変動するワークロードに対する堅牢な負荷分散ソリューション。
- 単一のターゲットインスタンスまたはグループに対して複数のアプリにトラフィックをルーティング。
- IPアドレスを使用して仮想プライベートクラウドの外部にあるターゲットグループへのトラフィックをルーティング。
- 静的および弾力的IPアドレスの両方をサポート。
- タグベースのアイデンティティおよびアクセス管理(AWS IAM)権限を使用した管理可能なセキュリティ。
- 弾力的コンテナサービス(AWS ECS)をサポートするクラスターの効率的な利用。
- コンテナやターゲットEC2インスタンス内の各サービスの健康チェックをサポート。NLBは、AWS Auto Scaling機能の一部として、変動する需要に応じて動的にスケールするサービスもバランスします。
Classic、Application、およびNetwork Load Balancerの選択は、インフラ環境、コスト、セキュリティ、およびエンドユーザーとターゲットグループ間のトラフィックの処理方法に大きく依存します。トラフィックがIPアドレスとTCPポートを使用して処理される一般的なユースケースでは、CLBが適切な選択肢かもしれません。特に、2つのエンドポイント間のルートマッピングが直接的な場合です。アプリケーションレベルでのトラフィックルーティングに複雑なルールを処理する環境では、ALBが適切な選択肢でしょう。静的および弾力的IPアドレスを介してルーティングが必要なワークロードや、ソースIPアドレスを保持する必要がある場合は、AWS Network Load Balancerが最も適切な選択肢となります。
AWSガイド
- AWSサーバーレスアプリケーションモデルをマスターするための初心者向けガイド
- AWS Well-Architected Framework: 6つの柱とベストプラクティス
- AWSグローバルクラウドインフラストラクチャ: リージョン、ゾーンなど
- Amazon VPCとは? Amazon Virtual Private Cloudの説明
- EFSとは? Amazon Elastic File Systemの説明
- AWS管理ツール: 利用可能なものと選択方法
- AWS Organizationsとは? 主な機能、利点、およびベストプラクティス
- AWSスポットインスタンスの紹介
- AWSリザーブドインスタンスの紹介
- AWS Route 53の紹介
- AWS Elastic Load Balancingとは何ですか?
- AWS ECSとAWS Lambda: 違いと選び方
- AWS ECSとEKS: 違いと選び方
- AWS EBS(Elastic Block Store)とは何ですか?
- AWS Snowball Edge: エッジコンピューティングによるデータ転送
- AWSクラウドデザインパターン
- AWSクラウドデータベースの説明: マルチクラウドにおけるイノベーション
- AWS Braket量子コンピューティング: 始め方
- AWS vs Azure vs GCP: 3つの主要クラウドプラットフォームの比較
これらの投稿は私自身の意見であり、必ずしもBMCの立場、戦略、または意見を表すものではありません。