見出し画像

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は大量のデータを速く運ぶトラックのようなものです。ここで重要なのは速さと効率で、どこに何を届けるかはあまり気にしません。

主な特徴

  1. トラックのように速い

    1. ミリ秒単位で大量の荷物(データ)を運ぶ

    2. つまり高いスループットと低いレイテンシを提供する

  2. 番号で識別する

    1. トラックの番号(ポート番号)で、荷物をどこに運ぶか決める

    2. つまりTCPまたはUDPのポート番号を使用してトラフィックを適切なサーバーにルーティングすること

  3. 配達エリアがある

    1. 荷物を届ける大雑把なエリア

    2. つまりターゲットグループで設定した任意のインスタンス、IPアドレス、Lambda関数にトラフィックをルーティングすること

  4. 同じナンバープレートで活動

    1. 同じナンバープレート(IPアドレス)を持ち続ける

    2. つまりElastic IPを設定可能


Application Load Balancer(ALB): 手紙を正確に届ける郵便配達人

第7層(アプリケーション層)で動作し、HTTP/HTTPSトラフィックのロードバランシングを専門に取り扱います。

ALBは郵便配達人のように、手紙や小包(HTTPリクエスト)を正確に届ける役割を果たします。誰に何を届けるかがとても大切です。

主な特徴

  1. 正確な配達

    1. 住所や名前(URLやヘッダー)に基づいて手紙を届ける

    2. つまりURLのパスやヘッダーに基づくコンテンツベースのトラフィックルーティングが可能

  2. 多様なサービス

    1. 色々な人々(マイクロサービス)へ配達可能

    2. 複数のマイクロサービスを1つのELBで管理できる

  3. モダンな通信

    1. より新しく、より効率的な通信プロトコルであるHTTP/2およびWebSocketをサポート


NLBとALBを選ぶポイント

NLB

速さと効率が求められる場合、大量の荷物を素早く運ぶトラックのようなNLBが適しています。

つまり「高性能なTCP/UDPトラフィックの管理が必要」な場合です。

ALB

細かい指示に基づいてデータを届ける必要がある場合、郵便配達人のようなALBが適しています。

つまり「コンテンツベースのルーティングやHTTP特化の機能が必要」な場合です。


ここまでお読みいただきありがとうございました!!

この記事が気に入ったらサポートをしてみませんか?