AWS ELB_NLB vs ALB_それぞれの違いと選定基準 #402
AWSのElastic Load Balancing(ELB)はトラフィックを効率的に分散させる役割を果たします。
その中でも、Network Load Balancer(NLB)とApplication Load Balancer(ALB)はそれぞれ異なる特徴を持っていますが、個人的にかなりイメージを持ちにくかったので、今回はトラックと郵便配達人に例えて違いを整理してみました。
Network Load Balancer(NLB): 速くたくさんの荷物を運ぶトラック
第4層(トランスポート層)で動作し、TCP、UDP、およびTLSトラフィックのロードバランシングを提供します。
NLBは大量のデータを速く運ぶトラックのようなものです。ここで重要なのは速さと効率で、どこに何を届けるかはあまり気にしません。
主な特徴
トラックのように速い
ミリ秒単位で大量の荷物(データ)を運ぶ
つまり高いスループットと低いレイテンシを提供する
番号で識別する
トラックの番号(ポート番号)で、荷物をどこに運ぶか決める
つまりTCPまたはUDPのポート番号を使用してトラフィックを適切なサーバーにルーティングすること
配達エリアがある
荷物を届ける大雑把なエリア
つまりターゲットグループで設定した任意のインスタンス、IPアドレス、Lambda関数にトラフィックをルーティングすること
同じナンバープレートで活動
同じナンバープレート(IPアドレス)を持ち続ける
つまりElastic IPを設定可能
Application Load Balancer(ALB): 手紙を正確に届ける郵便配達人
第7層(アプリケーション層)で動作し、HTTP/HTTPSトラフィックのロードバランシングを専門に取り扱います。
ALBは郵便配達人のように、手紙や小包(HTTPリクエスト)を正確に届ける役割を果たします。誰に何を届けるかがとても大切です。
主な特徴
正確な配達
住所や名前(URLやヘッダー)に基づいて手紙を届ける
つまりURLのパスやヘッダーに基づくコンテンツベースのトラフィックルーティングが可能
多様なサービス
色々な人々(マイクロサービス)へ配達可能
複数のマイクロサービスを1つのELBで管理できる
モダンな通信
より新しく、より効率的な通信プロトコルであるHTTP/2およびWebSocketをサポート
NLBとALBを選ぶポイント
NLB
速さと効率が求められる場合、大量の荷物を素早く運ぶトラックのようなNLBが適しています。
つまり「高性能なTCP/UDPトラフィックの管理が必要」な場合です。
ALB
細かい指示に基づいてデータを届ける必要がある場合、郵便配達人のようなALBが適しています。
つまり「コンテンツベースのルーティングやHTTP特化の機能が必要」な場合です。
ここまでお読みいただきありがとうございました!!
この記事が気に入ったらサポートをしてみませんか?