ALBとNLBの違いは、ひとことで言うと「通信のどの情報を見て振り分けるか」です。結論から言うと、ALBはURLやホスト名まで見て判断するL7(アプリケーション層)、NLBはIPアドレスとポート番号だけを見て判断するL4(トランスポート層)のロードバランサーで、見る場所が違うぶん得意な場面も違います。求人票や構成図で「ALB」「NLB」という言葉を見かけても、名前が似ているせいで何が違うのか分かりにくいものです。この記事では、AWSのELB(Elastic Load Balancing)におけるALBとNLBの違いを、未経験向けにやさしく整理します。

ALBとNLBは、AWSのロードバランサー(ELB)の種類
AWSでは、ロードバランサーの機能をまとめてELB(Elastic Load Balancing)と呼びます。ELBという1つの箱があるわけではなく、その中にALB・NLB・CLB(旧世代)という複数の種類が用意されていて、用途に応じて選ぶ仕組みです。ロードバランサーとは?で説明したとおり、ロードバランサー自体の役割はアクセスを複数のサーバーに振り分けて負荷を分散することですが、ALBとNLBはその振り分けを「何を見て」行うかが異なります。
振り分けの基準の違いは、ネットワークを層で捉える考え方と結びついています。スイッチとルーターの違いで扱ったL2・L3の区分と同じように、ALBはL7、NLBはL4という層を担当していると考えると整理しやすくなります。
ALB(Application Load Balancer)とは
ALBは、HTTP・HTTPSの通信内容まで見て振り分けを判断するロードバランサーです。アクセスされたURLのパスやホスト名、HTTPヘッダーの内容を見て、「/api/ 以下は裏側のAサーバー群へ」「/images/ 以下は裏側のBサーバー群へ」のように、きめ細かく振り分け先を分けられるのが特徴です。1つのドメインの中で複数のアプリを動かすような構成や、マイクロサービスのように役割ごとにサーバー群を分けている構成に向いています。
内容まで見ているぶん処理は少し重くなりますが、1つのドメインの中でパスやホスト名ごとに裏側のサーバー群を切り替えられる柔軟さは、Webアプリケーションを公開する一般的なサイトで活きる場面が多くあります。
NLB(Network Load Balancer)とは
NLBは、IPアドレスとポート番号といった通信の宛先情報だけを見て、中身には踏み込まずに高速で転送するロードバランサーです。アプリケーションの内容を解釈しないため処理が軽く、TCPやUDPの通信をそのまま高いスループットで流したい場面に向いています。ゲームサーバーやIoTデバイスからの通信、社内システム間の通信など、HTTP以外のプロトコルを扱う場面でよく登場します。
NLBには固定のIPアドレスを割り当てられるという特徴もあり、接続先を社内のファイアウォール設定などでIPアドレス指定したい場合に選ばれやすい点がALBとの大きな違いです。VPCとは?で扱ったサブネットやネットワークの構成と合わせて理解しておくと、NLBがどこに配置されるかもイメージしやすくなります。
ALBとNLBの違いを比較表で整理
ここまでの内容を表に整理します。
| 項目 | ALB | NLB |
|---|---|---|
| 対応する層 | L7(アプリケーション層) | L4(トランスポート層) |
| 対応プロトコル | HTTP・HTTPS | TCP・UDP・TLS |
| 振り分けの基準 | URLパス・ホスト名・ヘッダー | IPアドレス・ポート番号 |
| 処理の重さ | 内容を見るぶんやや重い | 内容を見ないぶん軽く高速 |
| 固定IP | 基本的に持たない | 持てる |
| 向いている場面 | Webアプリ・マイクロサービス | 低遅延通信・社内システム間連携 |
どちらを選ぶべきか:判断の目安
実際の現場では、次のような順番で考えると選びやすくなります。
- 対象がWebアプリ(HTTP・HTTPS)で、URLやホスト名ごとに振り分け先を変えたい: ALBを選ぶ
- 対象がHTTP以外のTCP・UDP通信で、できるだけ速く転送したい: NLBを選ぶ
- 接続先にIPアドレス指定でのアクセス許可が必要: NLBを選ぶ
- 1つのシステムの中でWeb部分とそれ以外の部分が混在している: ALBとNLBを両方使い分ける
どれを選ぶか迷う場合は、まず「扱う通信がHTTPかどうか」を起点に考えると、整理しやすくなります。
未経験から現場に入ってすぐにロードバランサーの選定を任されることは少ないですが、関わる場面自体は早い段階からあります。アクセスが特定のパスだけ遅い・特定のサーバー群だけエラーが出るといった問い合わせを受けたとき、ALBのルーティング設定を確認する、という場面は監視運用の担当者にもよくあります。現役でインフラの現場にいる立場から言うと、障害報告を受けたときに「ALBの振り分け設定の話」なのか「サーバー自体の問題」なのかを切り分けられると、原因調査のスピードがかなり変わってきます。ALB・NLBどちらを使っているかは構成図に書かれていることが多いので、まずそこを確認する習慣をつけておくとよいでしょう。
InfraDojoで学ぶ
InfraDojoなら、ブラウザ上の演習環境でネットワークの基礎やAWSの仕組みを手を動かしながら学べるため、ALB・NLBの前提になるIPアドレスやポート、通信の層といった考え方を順番に固めていけます。AWSをどこから学べばいいか迷う場合は、ロードマップで全体の流れを確認しておくと、ロードバランサーを学ぶタイミングも判断しやすくなります。
よくある質問
Q. ALBとNLB、どちらを先に学ぶべきですか?
未経験のうちは、まずWebアプリに使われることが多いALBから理解すると、URLやホスト名による振り分けという考え方がイメージしやすくなります。NLBはTCP・UDPという通信の基礎を理解したあとのほうが、何のために固定IPや高速転送が必要なのかがつかみやすくなります。
Q. ALBとNLBを1つの構成で両方使うことはありますか?
あります。1つのシステムの中でWebアプリの部分はALB、社内システムとの連携やゲームサーバーのような低遅延が必要な部分はNLBというように、通信の種類ごとに使い分ける構成は珍しくありません。構成図で両方が出てきたら、それぞれどの通信を受けているかを確認すると理解が進みます。
Q. ALB・NLBの設定は未経験でも触れますか?
いきなり本番環境の設定を任されることは少ないですが、学習環境やAWSの無料利用枠を使えば、自分でALB・NLBを作ってサーバーへの振り分けを確認する練習ができます。実際に設定画面を見ながら手を動かしておくと、現場で構成図や設定を読むときの理解が早くなります。