2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的な備忘録:AWSの Application Load Balancer (ALB) と Network Load Balancer (NLB) の違いを体系的に整理してみた

Posted at

はじめに

AWSには複数のロードバランサーが提供されており、その中でも特にApplication Load Balancer (ALB) と Network Load Balancer (NLB) は広く利用されています。

これらは用途や動作レイヤーが異なり、適切に選択することでシステムのパフォーマンスや可用性を最適化できます。

今回は、ALB と NLB の主な違いを整理し、それぞれの特徴や使いどころについて考察していきます。

書こうと思ったきっかけ

過去にさまざまな技術検証を行い、その中でロードバランサーに関する調査も行いました。

これらの経験を踏まえ、ALBとNLBの違いを一度整理し、備忘録としてまとめておきたいと思いました。

また、これからAWSを学ぶ人や、適切なロードバランサーの選択に悩んでいる人にとっても有用な情報になればと思います。

いろいろな観点でまとめてみた

1. 主な用途

ALB(Application Load Balancer)

  • HTTP/HTTPS トラフィック向け
  • アプリケーション層(L7: Layer 7)で動作
  • パスベースやホストベースのルーティングが可能
  • Webアプリケーションや API の負荷分散に適している

NLB(Network Load Balancer)

  • TCP/UDP トラフィック向け
  • ネットワーク層(L4: Layer 4)で動作
  • 高スループット・低レイテンシーに最適化
  • ゲームサーバーや金融系アプリ、リアルタイム通信向け

2. プロトコルの違い

ALB

  • HTTP, HTTPS, WebSocket に対応
  • HTTP ヘッダーやクエリパラメータを見てルーティング可能

NLB

  • TCP, UDP, TLS に対応
  • IP アドレスやポート単位での負荷分散

3. ルーティング機能

ALB

  • パスベースルーティング(例: /login はサーバA、/products はサーバB)
  • ホストベースルーティング(例: app.example.com はグループA、api.example.com はグループB)
  • クエリパラメータやヘッダーに基づくルーティング

NLB

  • ルーティングの柔軟性はない(基本は TCP/UDP ポートごとの単純な振り分け)

4. 耐障害性

ALB

  • AWS リージョン内の複数の AZ(アベイラビリティゾーン)にトラフィックを分散可能
  • 負荷分散の仕組みは AWS 側が管理

NLB

  • 1つの固定 IP アドレスを提供可能(ELB の中で唯一)
  • ゾーンごとのヘルスチェックが可能で、障害発生時には別のゾーンへ自動でトラフィックを振り分け

5. パフォーマンス

ALB

  • HTTP/HTTPS のリクエスト処理が必要なため、遅延が若干発生する
  • 軽量なリクエストに適しているが、大量の小さいリクエストにはやや不向き

NLB

  • AWS の内部ネットワークを直接利用するため、超低レイテンシー
  • 高スループットを必要とするアプリケーションに最適
  • 1秒間に数百万リクエストを処理可能

6. コスト

ALB

  • 使用時間 + 処理リクエスト数 に応じて課金
  • 小規模な Web アプリなどではコストが比較的安い

NLB

  • 使用時間 + 処理データ量(GB 単位) に応じて課金
  • データ転送量が多い場合、ALB よりコストがかかることも

7. TLS(SSL)ターミネーション

ALB

  • HTTPS リクエストの SSL/TLS 終端が可能
  • 証明書を ALB に登録し、内部通信を HTTP にすることができる

NLB

  • TLS パススルー(エンドツーエンド暗号化)が可能
  • 内部サーバーで SSL 処理を行う必要がある

8. 固定 IP

ALB

  • 固定 IP なし(DNS 名でアクセス)
  • IP アドレスが変わる可能性があるため、IP ベースの許可リストに登録しづらい

NLB

  • 固定 IP を提供
  • 固定 IP を必要とするアプリケーションやファイアウォール設定に適している

ALB と NLB の比較表

項目 ALB (Application Load Balancer) NLB (Network Load Balancer)
動作レイヤー L7 (アプリケーション層) L4 (ネットワーク層)
対応プロトコル HTTP, HTTPS, WebSocket TCP, UDP, TLS
ルーティング機能 パス・ホスト・ヘッダーで振り分け シンプルなポートベース
パフォーマンス 標準 高スループット・低遅延
耐障害性 マルチ AZ 対応 マルチ AZ + 固定 IP
TLS 終端 可能 パススルーのみ
固定 IP なし あり
コスト リクエスト数課金 データ転送量課金

まとめ

ご覧いただきありがとうございました。今回は AWS の基本的なサービスの違いについてまとめましたが、知識を体系的に振り返る良い機会となりました。

今回の内容がどこまで参考になるか分かりませんが、どなたかの技術の助けになれば幸いです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?