AWSのALBとNLBの違いを比較!ユースケースに応じた使い分けを初心者向けに解説
生徒
「先生、AWSのロードバランサーにはALBとNLBがあるって聞きました。どっちを使えばいいんですか?」
先生
「ALB(アプリケーションロードバランサー)とNLB(ネットワークロードバランサー)は役割が違います。ALBはアプリケーション層、NLBはネットワーク層で動作するロードバランサーです。ユースケースに応じて使い分けが必要なんですよ。」
生徒
「なるほど。名前が似ているので違いが分かりにくいです。詳しく教えてください!」
先生
「では、ALBとNLBの特徴や違いを順番に整理しながら説明していきましょう。」
1. ALBとNLBの基本的な違い
AWSのElastic Load Balancing(エラスティックロードバランシング、読み方はイーエルビー)は、複数のロードバランサーを提供しています。その中でも代表的なのがALB(Application Load Balancer、アプリケーションロードバランサー)とNLB(Network Load Balancer、ネットワークロードバランサー)です。
ALBは第7層(アプリケーション層)で動作し、リクエストの中身を見てルーティングを行います。一方でNLBは第4層(トランスポート層)で動作し、TCP(ティーシーピー)やUDP(ユーディーピー)の通信を超高速で処理するのが特徴です。
2. ALB(Application Load Balancer)の特徴
ALBはWebアプリケーションやAPI(エーピーアイ)の分散に向いています。具体的な特徴は以下の通りです。
- リクエスト内容を解析:URLのパスやホスト名に基づいてルーティング可能
- HTTP/HTTPSに対応:セキュリティ証明書を設定して安全な通信を実現
- マイクロサービスに最適:複数のサービスを1つのドメインで柔軟に振り分けできる
- ログ・モニタリング:CloudWatch(クラウドウォッチ)で詳細なメトリクスを取得可能
例えば、利用者が「/login」にアクセスしたら認証用サーバーへ、「/shop」にアクセスしたらショッピング用サーバーへと分ける、といった高度な処理が可能です。
3. NLB(Network Load Balancer)の特徴
NLBは低遅延と高スループットを求められる場面に適しています。特徴は次の通りです。
- 超高速処理:ミリ秒単位の低遅延で数百万リクエストを処理可能
- 静的IPアドレス:固定IPを利用でき、ファイアウォールやセキュリティ設定が容易
- TCP/UDP通信に対応:ゲームサーバーや金融システムに適用できる
- 高可用性:複数のアベイラビリティゾーンにまたがり耐障害性を実現
たとえばオンラインゲームやIoT(アイオーティー)デバイスとの接続では、一瞬の遅延が大きな影響を与えるため、NLBの超低遅延性能が役立ちます。
4. ALBとNLBの比較表
| 項目 | ALB(アプリケーションロードバランサー) | NLB(ネットワークロードバランサー) |
|---|---|---|
| 動作層 | 第7層(アプリケーション層) | 第4層(トランスポート層) |
| 得意分野 | Webアプリケーション、API、マイクロサービス | ゲーム、金融システム、IoT通信 |
| 遅延 | やや大きい | 非常に小さい |
| 機能 | パスベース・ホストベースルーティング | 固定IP、超高速通信 |
5. ユースケースごとの使い分け
ALBとNLBは、それぞれ得意な分野が違うため、利用シーンによって選び方が変わります。
- ALBを選ぶケース:WebアプリケーションやAPIサーバーを構築するとき。利用者のリクエスト内容に応じて処理を振り分けたい場合に有効。
- NLBを選ぶケース:低遅延が重要な金融取引システムやゲームサーバー、大量接続が発生するIoTシステムで最適。
また、ユースケースによってはALBとNLBを組み合わせることも可能です。例えば、外部からのアクセスをまずNLBで受け、その後ALBでアプリケーション層に応じたルーティングを行う構成も考えられます。
6. 初心者に分かりやすい例え
ALBを例えるなら「デパートの案内係」です。お客様が「食品売り場に行きたい」と言えば案内係が適切なフロアに案内します。一方、NLBは「高速道路の料金所ゲート」のような存在です。車(リクエスト)が大量に来ても、ゲートが素早く整理して各レーンに分けるため渋滞を防ぎます。この違いを知ることで、ALBとNLBのユースケースを直感的に理解できます。
まとめ
今回は、AWSのロードバランサーであるALBとNLBの違いについて、初心者でも理解しやすいように具体例や比較表を交えて整理しました。アプリケーション層で動作するALBは、URLパスやホスト名を基準に細かな振り分けができるため、WebアプリケーションやAPI、マイクロサービスの構成に非常に向いています。特に複数のエンドポイントをまとめて運用する際は、ALBのパスベースルーティングが大きな力を発揮します。 一方で、NLBはネットワーク層で動作し、TCPやUDPを超高速でさばけるのが大きな強みです。低遅延が求められるゲームサーバーや金融システム、IoTの大量デバイス通信などでは、ミリ秒単位のレスポンスが安定して提供されるNLBが最適です。固定IPを利用できる点もネットワーク構成上大きなメリットとなります。 さらにALBとNLBはどちらか一方だけを使う必要はなく、ユースケースに応じて組み合わせることで柔軟なアーキテクチャを構築できます。例えば外部からの接続をまずNLBで処理し、その後ALBでアプリケーション層のルーティングを行う構成は、耐障害性と柔軟性の両方を高められる代表的なパターンです。 AWSのロードバランサーは、クラウドアーキテクチャを考える上で欠かせない重要な要素であり、ALBとNLBの強みを理解することは、より安定したシステム設計につながります。今回解説したポイントを参考に、プロジェクトの特性や将来の拡張性を見据えつつ、適切なロードバランサーを選択してみてください。
サンプル設定コード
ここでは、ALBでパスベースルーティングを設定する簡単な例を示します。実際のAWS環境ではTerraformやCloudFormationを利用することもありますが、ここでは概念を把握しやすいようにXML風の構成例でまとめています。
<LoadBalancer type="ALB">
<Listener protocol="HTTPS" port="443">
<Rule path="/login" targetGroup="auth-service"/>
<Rule path="/shop" targetGroup="shop-service"/>
<Rule path="/api/*" targetGroup="api-service"/>
</Listener>
</LoadBalancer>
次は、NLBの固定IP設定のイメージ例です。高速処理を重視した構成で、金融取引システムやゲームサーバーなどに利用されます。
<LoadBalancer type="NLB">
<Listener protocol="TCP" port="443">
<TargetGroup name="realtime-system"/>
</Listener>
<StaticIP enabled="true"/>
</LoadBalancer>
生徒
「先生、今回学んだことで一番重要なのは何ですか?」
先生
「一番大切なのは、ALBとNLBが“どの層で動くのか”と“どんな特性を持っているか”を理解することですね。アプリケーション層かネットワーク層かでできることが大きく変わるので、設計の判断が変わってきます。」
生徒
「たしかに、ALBは案内係のように細かく振り分けてくれて、NLBは大量の通信を高速でさばいてくれる、というイメージがとても分かりやすかったです。」
先生
「そのイメージを覚えておくと、実際のシステム設計で迷ったときに判断しやすくなりますよ。WebアプリケーションならALB、リアルタイム通信ならNLB、といった基準が自然に身につきます。」
生徒
「ユースケースに応じて使い分ける理由がよく分かりました。次はALBとNLBを組み合わせる構成にも挑戦してみたいです!」
先生
「ぜひ試してみてください。設計の幅が広がって、AWSの理解もさらに深まりますよ。」
この記事を読んだ人からの質問
プログラミング初心者からのよくある疑問/質問を解決します
AWSのロードバランサーにはどんな種類があるの?
AWSのロードバランサーには主にALB(アプリケーションロードバランサー)とNLB(ネットワークロードバランサー)の2種類があり、それぞれ異なる特徴とユースケースがあります。
理解度のクイズ問題
以下の選択肢の中から、当てはまるものを1つ選んでください。
ある開発チームは、大規模なWebアプリケーションを構築しています。 リクエストのURLパスやホスト名に基づいて異なるサーバーに振り分けたいと考えています。 さらに、セキュリティ証明書を利用してHTTPS通信を行いたい場合に、 最も適したロードバランサーはどれでしょうか。 A. Amazon CloudFront B. Application Load Balancer (ALB) C. Network Load Balancer (NLB) D. Classic Load Balancer