0
0

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 ELB】NLBとALBの採用基準・使い分けまとめ

0
Posted at

SAAの試験勉強において、Webアプリケーションのロードバランサー選定においてALBを採用する旨味は何なのか? 自分の理解が漠然としていた為、認識の整理とアウトプットを兼ねて、それぞれの特徴と採用基準をまとめました。


1. NLB(Network Load Balancer)の特徴

レイヤー4(TCP/UDP)に特化しているからこそ実現できる、圧倒的なパフォーマンスとネットワーク制御能力が特徴です。

  • 通信速度・パフォーマンスが優れている
    • ミリ秒未満の低レイテンシ
    • 事前ウォーミングなしで、毎秒数百万リクエストのスパイクをそのまま処理可能
  • 固定IPアドレス(EIP)を保持可能
    • ALBでは動的IPが割り当てられる
  • HTTP/HTTPS以外のプロトコルに対応
    • データベース通信、RTMP、ゲームサーバーなど、L4レベル(プロトコルベース)での負荷分散が可能
  • 送信元IP(Source IP)の保持
    • クライアントの元のIPをパケット内に保持したままターゲットへ渡せる
    • ※ALBの場合は送信元がALBのIPに書き換わるため、X-Forwarded-For ヘッダーを参照する必要あり
  • AWS PrivateLink のバックエンド(受入口)になれる
    • VPCエンドポイント(Interface型)からのプライベート通信を受け止めて、オリジンの前でプロキシ可能

2. ALB(Application Load Balancer)の特徴

ALBは、レイヤー7(HTTP/HTTPS)を理解できる。
そして、Webアプリケーションのロードバランシングに有用な高度な機能が揃っている。

  • HTTP/HTTPSベースの高度なヘルスチェックが可能
    • 「Webアプリとして実際に機能しているか(200 OKが返るか)」 という観点で監視ができ、サービスの可用性向上に寄与
    • NLBはポート疎通(TCP接続)確認のみのため、アプリが500エラーでフリーズしていても正常と判定してしまうリスクあり
  • レイヤー7での柔軟なルーティング
    • URLパスベースやホストベースでの振り分け(/api/* は別サーバーへ、等)が可能
  • SSL証明書の一元管理と「SSLオフロード」
    • 暗号化(HTTPS)の終端をALBにすることで、オリジン(EC2)側の復号負荷を大幅に軽減
    • VPC内部はセキュリティが担保されているため、ALB ⇔ オリジン間は HTTP 通信で構成可能
    • ACM(AWS Certificate Manager)との完全統合: 無料証明書の適用・自動更新に対応
  • セキュリティの強化
    • AWS WAF を直接アタッチして、SQLインジェクションやXSSなどの攻撃をブロック可能
  • モダンプロトコルへの標準対応
    • HTTP/2、HTTP/3、WebSocket をALBが自動で仲介するため、オリジン側の構成変更が不要

まとめ:選定の基準

上記の理由から、Webアプリケーションをロードバランシングする場合は、通信パフォーマンスや固定IPといった特別な要件(L4レベルの制約)がない限り、ALBを採用するメリットのほうが大きい。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?