AWSを学び始めたものの、「ALBやNLBなど種類が多くて違いが分からない」「ロードバランサの導入メリットを具体的に知りたい」といった悩みを抱えていませんか。
AWS ELBとは、特定のサービス名ではなく、AWSが提供するロードバランサ機能の総称であり、複数の種類が存在します。
各ロードバランサの特性を理解し、システムの要件に合わせて正しく使い分けることが重要です。

この記事を読めば、自社のシステム要件に合わせて最適なELBの種類を選択でき、その基本的な設定手順をイメージできる状態になります。
入門者向けに、料金体系や具体的な使い分けのポイントまで分かりやすく解説します。

この記事でわかること
・ ELBの基本的な仕組みと、可用性向上や運用自動化といった導入メリット
・ Webサイト向けのALBなど、主要ロードバランサの種類ごとの特徴と最適な選び方
・ ELBを構成する「リスナー」「ターゲットグループ」といった基本要素の役割
・ ロードバランサの稼働時間やデータ処理量に基づく料金体系

AWS ELB(Elastic Load Balancing)とは?負荷分散を実現する仕組みの基本

ELB(Elastic Load Balancing)とは、アプリケーションへのアクセス(トラフィック)を複数のサーバー(EC2インスタンスなど)に自動的に分散させることで、システムの安定稼働を支えるロードバランササービスです。
特定の一台のサーバーに負荷が集中するのを防ぎ、アプリケーションの可用性と耐障害性を高める役割を担います。
ELBは、AWSが提供する複数のロードバランササービスの総称であり、用途に応じて最適な種類を選択できます。

ELBはAWSのロードバランサーサービスの総称

ELB(Elastic Load Balancing)は、単一の製品を指す言葉ではなく、AWSが提供する複数のロードバランサーサービス全体を指す総称です。
元々は「Classic Load Balancer(CLB)」という一つのサービスでしたが、技術の進化に伴い、より特定の用途に特化した「Application Load Balancer(ALB)」や「Network Load Balancer(NLB)」などが登場しました。

このように、ELBという傘の下に、機能や特性の異なる複数のロードバランササービスが存在し、ユーザーは自らのシステムの要件に合わせて最適なものを選択する仕組みになっています。

ELB導入によって解決できるサーバー負荷の問題

Webサイトやアプリケーションに予期せぬアクセスが集中すると、サーバーに過大な負荷がかかり、レスポンスの遅延や最悪の場合はサーバーダウンによるサービス停止といった障害を引き起こす可能性があります。
ELBを導入すると、受信したアクセスを複数のサーバーへ自動的に振り分けるため、一台あたりの負荷が軽減されます。

これにより、突発的なアクセス増加にも柔軟に対応でき、安定したサービス提供を維持することが可能になります。
ELBは、このように負荷を分散させることでサーバー起因の障害を防ぎます。

【比較表】AWS ELBの4つの種類と最適な選び方

AWS ELBには、現在主に利用される3種類(ALB,NLB,GLB)と、旧世代のCLBを合わせて4つの種類が存在します。
それぞれ負荷分散を行うネットワークの階層(レイヤー)や得意な処理が異なるため、構築するシステムの特性に合わせた使い分けが不可欠です。
WebサイトならALB、高速通信が求められるならNLBといったように、それぞれの特徴を比較し、最適なロードバランサを選びましょう。

以下で各種類の特徴を解説します。

Webシステムに最適な「ALB(Application Load Balancer)」の特徴

ALB(Application Load Balancer)は、OSI参照モデルの第7層(アプリケーション層)で動作するロードバランサーです。
このレイヤーで動作することにより、HTTP/HTTPSのヘッダー情報、例えばURLのパス(/path/)やホスト名(example.com)といった、より具体的なリクエスト内容に基づいた柔軟なルーティングが可能になるという特徴があります。
例えば、「/images/」へのアクセスは画像配信用サーバーへ、「/api/」へのアクセスはAPIサーバーへといった振り分けが可能です。

一般的なWebアプリケーションやマイクロサービスの負荷分散に適しています。
ALBでの504 Gateway Time-out発生時の対応については「ALBで504 Gateway Time-out発生時の対応」で詳しく紹介しています。

高速処理が求められる通信向けの「NLB(Network Load Balancer)」の特徴

NLB(Network Load Balancer)は、OSI参照モデルの第4層(トランスポート層)で動作するロードバランサーです。
TCPやUDPといったプロトコルレベルでトラフィックを処理するため、ALBのような細かいルーティングはできませんが、その分、非常に高速で低遅延な負荷分散を実現できるという特徴があります。

毎秒数百万リクエストを処理できるパフォーマンスを持ち、オンラインゲームや動画ストリーミング、高い性能が要求されるシステムに最適です。
また、固定のIPアドレス(静的IPアドレス)を割り当てられる点も大きな特徴の一つです。

仮想アプライアンスの冗長化で使う「GLB(Gateway Load Balancer)」の特徴

GLB(GatewayLoadBalancer)は、OSI参照モデルの第3層(ネットワーク層)で動作する特殊なロードバランサーです。
その主な特徴は、ファイアウォールや侵入検知システム(IDS/IPS)といった、サードパーティ製の仮想アプライアンス群に対してトラフィックを透過的に分散させる点にあります。
これにより、セキュリティ対策などで利用する仮想アプライアンスのスケーラビリティと可用性を高めることができます。

ユーザーはベンダーの提供する仮想アプライアンスを、オンプレミス環境と同じようにAWS上で冗長構成を組んで利用できます。

旧世代の「CLB(Classic Load Balancer)」は現在非推奨

CLB(ClassicLoadBalancer)は、ALBやNLBが登場する前に提供されていた旧世代のロードバランサーです。
第4層(TCP/SSL)と第7層(HTTP/HTTPS)の両方で基本的な負荷分散を行えますが、現在では機能面でより優れているALBやNLBの利用がAWSから強く推奨されています。
CLBは、古いネットワーク環境である「EC2-Classic」上で構築されたアプリケーションなど、非常に限定的なケースでのみ利用が想定されており、新規でシステムを構築する際に選択する理由はありません。

AWS ELBを導入する4つのメリット

ELBを導入することで、システムの安定性や運用効率を大幅に向上させる多くのメリットが得られます。
具体的には、サーバー障害発生時のサービス継続性を高める「可用性の向上」、アクセス数の増減に自動で対応する「柔軟なスケーリング」、SSL/TLS証明書の管理を効率化する「運用コストの削減」、そして異常なサーバーを自動で切り離す「ヘルスチェックによる自動復旧」が挙げられます。

これらの機能によって、手動でのサーバー管理の手間を大幅に削減できます。

メリット1:サーバーの単一障害点をなくし可用性を高める

ELBは、複数のサーバーにトラフィックを分散させることで、単一障害点を排除します。
単一障害点とは、その一点が故障するとシステム全体が停止してしまう箇所のことを指します。
ELBを利用しない場合、Webサーバーが1台しかないと、そのサーバーに障害が発生した時点でサービスは完全に停止してしまいます。

ELBを導入しサーバーを複数台構成にすれば、1台に障害が起きてもELBが自動的に正常なサーバーにのみトラフィックを振り分けるため、サービス全体が停止することなく高い可用性を維持できます。

メリット2:アクセス増減に応じた柔軟な自動スケーリングを実現

ELBは、AWSのAutoScaling機能と連携することで、アクセスの増減に応じてサーバー(EC2インスタンス)の数を自動で調整できます。
例えば、キャンペーンなどでアクセスが急増した際には、AutoScalingが自動でサーバーをスケールアウト(増やす)し、ELBがその新しいサーバーにもトラフィックを分散させます。
逆にアクセスが減少すれば、不要になったサーバーをスケールイン(減らす)してコストを最適化します。

これにより、手動でのサーバー増減作業を行うことなく、常に適切なリソースで安定したパフォーマンスを保つことが可能です。

メリット3:SSL/TLS証明書を一元管理して運用コストを削減

Webサイトの通信を暗号化するSSL/TLS証明書を、ELBに一元的に集約して管理できます。
通常、複数のWebサーバーでHTTPS通信を行う場合、それぞれのサーバーに証明書をインストールし、個別に更新作業を行う必要があります。
しかし、ELBを利用すれば、証明書をELBに1つ設定するだけで、配下にある全てのサーバーへの通信を暗号化できます。

これにより、証明書の管理・更新作業がELBのみで完結し、運用コストと手間を大幅に削減できます。
無料のSSL証明書については「無償のSSL証明書を考える」で詳しく紹介しています。

メリット4:ヘルスチェックで異常なサーバーを自動で切り離す

ELBには、配下のサーバーが正常に稼働しているかを定期的に監視するヘルスチェック機能が備わっています。
ELBは指定された間隔で各サーバーにリクエストを送り、正常な応答が返ってくるかを確認します。
もしサーバーから応答がない、またはエラーが返ってくるなど異常を検知した場合、ELBはそのサーバーを「異常」と判断し、自動的にトラフィックの振り分け対象から切り離します。

その後、サーバーが復旧し正常な状態に戻れば、再び振り分け対象に自動で追加されます。
この自動的な切り替えにより、障害発生時の影響を最小限に抑えます。

ELBの仕組みを理解する3つの基本構成要素

AWS ELBを効果的に利用するためには、その基本的な仕組みを理解することが重要です。
ELBの動作は主に「リスナー」「ターゲットグループ」「ルール」という3つの構成要素によって定義されます。
これらは、外部からのリクエストを「どこで受け付け(リスナー)」、「どこへ転送し(ターゲットグループ)」、「どのような条件で振り分けるか(ルール)」を決定する重要な役割を担っており、ELBを設定する上で必ず理解しておく必要があります。

リクエストの受付窓口となる「リスナー」の役割

リスナーとは、クライアントからの接続リクエストを待ち受ける「受付窓口」の役割を担うコンポーネントです。
リスナーを定義する際には、どのプロトコル(例:HTTP,HTTPS)とどのポート番号(例:80,443)でリクエストを受け付けるかを指定します。

例えば、Webサイトへのアクセスであれば、HTTP用のポート80とHTTPS用のポート443でリクエストを待ち受けるリスナーを設定します。
リスナーは受け付けたリクエストを、後述する「ルール」に基づいて適切な「ターゲットグループ」へ転送します。

トラフィックの転送先をまとめる「ターゲットグループ」の役割

ターゲットグループは、リスナーが受け取ったトラフィックの転送先となるEC2インスタンスやLambda関数などのリソースをまとめたグループです。
ELBは、このターゲットグループに登録されたターゲットに対してトラフィックを分散させます。
また、ターゲットグループ単位でヘルスチェックの設定を行い、グループ内の各ターゲットの正常性を監視します。

異常なターゲットが検出されると、そのターゲットは一時的にトラフィックの振り分け対象から外されます。
これにより、常に正常なEC2インスタンスにのみリクエストが送られるようになります。

リクエストを振り分ける条件を指定する「ルール」の役割

ルールは、リスナーが受け取ったリクエストを、どのターゲットグループに転送するかを決定するための条件を定義します。
特にALB(ApplicationLoadBalancer)では、このルールを柔軟に設定することで高度なルーティングを実現できます。
例えば、「URLのパスが/images/*なら画像配信用ターゲットグループへ転送する」「HTTPヘッダーのホスト名がapi.example.comならAPI用ターゲットグループへ転送する」といった条件指定が可能です。

ルールは優先度順に評価され、条件に一致した最初のアクションが実行されます。

AWS ELBの料金体系を種類別に解説

ELBの料金は、基本的に従量課金制であり、ロードバランサーの種類ごとに計算方法が異なります。
初期費用は不要で、利用した分だけ料金が発生する仕組みです。
また、AWSには無料利用枠も用意されており、新規アカウントは一定時間・一定量のELB利用が無料になる場合があります。

システムの規模やトラフィック量によって費用は変動するため、主要な課金要素を理解し、コストを見積もることが重要です。

ELBの料金が決まる2つの主要な課金要素

ELBの料金は、主に2つの要素で決まります。
1つ目は「ロードバランサーの稼働時間」で、ロードバランサーが実行されている1時間ごとに料金が発生します。
2つ目は「トラフィック処理量」で、ロードバランサーが処理したデータ量や接続数などに応じて課金されます。

このトラフィック処理量の課金単位はロードバランサーの種類によって異なり、ALBでは「LCU」、NLBでは「NLCU」という単位が用いられます。
これらの合計が月々の費用となります。

ALB(Application Load Balancer)の料金内訳

ALBの料金は、「1時間あたりの利用料金」と「LCU料金」の合計で構成されます。
LCUは、ALBが処理したトラフィックのディメンション(新規接続数、アクティブ接続数、処理バイト数、ルール評価数)のうち、最も消費量が多いもので課金額が決まります。
一般的なWebサイトの運用では、処理バイト数が課金の主要因になることが多いです。

この従量課金モデルにより、トラフィックの少ない時間帯は費用を抑えることができます。

NLB(Network Load Balancer)の料金内訳

NLBの料金体系もALBと同様に、「1時間あたりの利用料金」と「NLCU(NetworkLoadBalancerCapacityUnit)料金」の合計で決まります。
NLCUは、NLBが処理したトラフィックのディメンション(新規接続/フロー数、アクティブ接続/フロー数、処理バイト数)のうち、最も消費量が多い要素に基づいて計算されます。
NLBは大量のトラフィックを低遅延で処理する用途で使われるため、処理バイト数が費用に大きく影響する傾向があります。

GLB(Gateway Load Balancer)の料金内訳

GLBの料金は、「1時間あたりの利用料金」と「GLCU(GatewayLoadBalancerCapacityUnit)料金」の2つの要素で構成されます。
GLCUは、新規フロー数やアクティブフロー数などに基づいて計算されます。
仮想アプライアンスを介したトラフィックの量に応じて費用が変動するため、導入する際はセキュリティポリシーや監視要件から想定されるデータ処理量を見積もることが重要です。

AWS ELBに関するよくある質問

ここでは、AWSELBを学び始めた入門者が抱きやすい疑問や、設定時に確認しておきたいポイントについて、よくある質問形式で回答します。

ALBとNLBの具体的な違いは何ですか?どちらを選ぶべきか教えてください。

ALBはWebトラフィック(HTTP/S)向け、NLBは高速・大量通信向けです。
ALBはURLパスなどに基づいた柔軟な振り分けが得意なためWebサイトやAPIに最適です。

一方、NLBはTCP/UDPレベルで高速に処理するため、オンラインゲームや大規模なデータ転送に適しています。
システムの要件に応じてこの基本的な使い分けを判断します。

ターゲットグループやリスナーはAWS ELBの中でどのような役割を担っていますか?

リスナーは「受付窓口」、ターゲットグループは「転送先リスト」の役割を担います。
リスナーが指定されたポートでクライアントからのリクエストを受け付け、設定されたルールに基づき、リクエストの転送先となるEC2インスタンスなどをまとめたターゲットグループへトラフィックを振り分けます。

AWS ELBを導入すると、サーバーの運用はどのように楽になりますか?

サーバーの障害検知と切り離し、アクセス増減に応じた自動スケーリング、定期的な死活監視が自動化され、手動での運用・監視負荷が大幅に軽減されます。
ELBがサーバーの可用性を自動で維持するため、運用担当者は障害対応やリソース調整の作業から解放され、より重要な業務に集中できるようになります。

まとめ

本記事では、AWSELBの基本的な仕組みから、ALB、NLB、GLBといった各ロードバランサーの種類と特徴、そして具体的なメリットや料金体系について解説しました。
ELBは単なる負荷分散機能にとどまらず、ヘルスチェックによる可用性の向上やAutoScalingとの連携による柔軟なリソース調整など、AWSで高可用なシステムを構築する上で不可欠なサービスです。
各ロードバランサーの特性を正しく理解し、Webシステム、高速通信、仮想アプライアンスといった自社のシステム要件に最適な種類を選択することが、安定的で効率的なインフラ運用の第一歩となります。