Elastic Load Balancing (ELB) は、AWSが提供するロードバランサーサービスです。ロードバランサーとは、複数のサーバー(例えば、EC2インスタンス)へのネットワークトラフィックを自動的に分散させる仕組みのことを指します。これにより、アプリケーションの可用性を高め、単一のサーバーへの負荷が集中することを防ぎます。
負荷分散について
-
負荷分散を行う際、ELBは単一のアクセスポイント(Elastic IPアドレス使用可)を提供し、その後ろで複数のEC2インスタンスにトラフィックを分散します。つまり、ELBを使用することで、ユーザーは複数のElastic IPアドレスを管理する必要がなく、ELBが自動的に負荷分散を行います。
-
ロードバランシングを効果的に行うためには、複数のEC2インスタンスが必要です。ロードバランサーの主な目的は、入ってくるトラフィックを複数のサーバー(この場合はEC2インスタンス)間で分散させることにより、どの一つのサーバーにも過剰な負荷がかからないようにすることです。これにより、システム全体の可用性と耐障害性が向上します。
-
複数のインスタンスがない場合、すべてのトラフィックが単一のインスタンスに向かうため、ロードバランサーを使用する主な利点が失われます。そのため、ロードバランシングを行う場合、効果的に負荷を分散させるためには、2つ以上のEC2インスタンスを用意し、それらをロードバランサーに登録する必要があります。
ELBの種類
ELBには3つの主要なタイプがあります:Application Load Balancer(ALB)、Network Load Balancer (NLB)、そしてClassic Load Balancer(CLB) です。
- Application Load Balancer (ALB): アプリケーション層(第7層)で動作し、HTTPとHTTPSトラフィックの負荷分散に特化しています。高度なルーティング機能を提供し、リクエストの内容に基づいてトラフィックをルーティングできます。
- Network Load Balancer (NLB): トランスポート層(第4層)で動作し、TCP、UDP、およびTLSトラフィックに対して超低遅延での負荷分散を行います。高いスループットと静的IPアドレスをサポートしています。
- Classic Load Balancer (CLB): 従来のロードバランサーで、アプリケーション層とトランスポート層の両方で動作しますが、ALBやNLBに比べて機能が限定されています。
以下の表で、これらのELBタイプを比較します。
特徴 | ALB | NLB | CLB |
---|---|---|---|
対応プロトコル | HTTP, HTTPS | TCP, UDP, TLS | HTTP, HTTPS, TCP, SSL |
用途 | アプリケーションレベルでの高度なルーティングが必要な場合 | 非常に高いパフォーマンスと低遅延が求められる場合 | シンプルな負荷分散が必要な場合 |
特徴 | コンテンツベースのルーティング、動的ホストポートマッピング | 静的IPアドレスの割り当て、高スループット | 基本的なロードバランシング機能 |
ELBの料金計算方法
ELBの料金は使用したサービスのタイプ(ALB、NLB、CLB)、使用量(処理したデータ量や新規接続数など)、および選択した追加機能(例:SSL/TLS証明書の利用)に基づいて計算されます。料金は以下の要素に分けられます:
- 時間単位の使用料: インスタンスがアクティブである時間に基づいて請求されます。ALB、NLB、CLBごとに異なる料金が設定されています。
- 処理したデータ量: ロードバランサーを通じて転送されたデータの量に応じて請求されます。この料金は、データ転送のGB単位で計算されます。
- 追加機能の料金: SSL/TLS証明書の利用や、特定のルーティング機能など、標準機能以外のオプションを使用した場合、追加料金が発生することがあります。