CLB, ALB, NLBの違い

はじめに

udemyでCLB, ALB, NLBの違いについて軽く説明があったので、まとめてみます。

各Load Balancerの違い

AWS 認定ソリューションアーキテクト アソシエイト P27からの抜粋です。

Classic Load Balancer(CLB)
標準的なロードバランシングサービスを提供する。
CLBに対するTCPリクエストをバックエンドインスタンスへ振り分け、指定されたポートへ通信トラフィックを転送する

Application Load Balancer(ALB)
CLBの機能に加え、リクエストのクエリを判断し、あらかじめ設定したパスのルーティングに従って振り分ける。
そのため、Webサーバーやアプリケーションサーバーのコンテンツベースで、特定のサーバーへ処理を振り分けることができる

Network Load Balancer(NLB)
レイテンシーで高いスループットを実現する場合に利用する。
送信元のアドレスを保持するため、レスポンスはクライアントへ直接返す

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

AWS公式ドキュメントも見てみました。
Elastic Load Balancing の特徴 - アマゾン ウェブ サービス

まとめると以下のようです。
・EC2-Classicの時ではCLBが使用されていた
・CLBはリクエストレベル(レイヤー7)と接続レベル(レイヤー4)の両方で動作可能
VPCの時では、リクエストレベル(レイヤー7)で動作するALB、接続レベル(レイヤー4)で動作するNLBが推奨されている
・ALB、NLBは、CLBの機能を基に各機能が追加されている