👩‍👧‍👧

ELBの3種類のロードバランサーの特徴(ALB、NLB、GLB)

2022/02/27に公開

Elastic Load BalancingでサポートしているALB、NLB、GLBの3種類のロードバランサーについてまとめました。

ALB(Application Load Balancer)

アプリケーション専用のロードバランサーで、L7の対応が強化されています。
リクエスト内容によるバランシングや、URLのパスに基づいてトラフィックを制御する(パスルーティング機能)ことができます。
加重ロードバランシングが可能で、ターゲットグループの重み付けをしてトラフィックの分散を制御することもできます。
クロスゾーン負荷分散がデフォルトで有効になっています。

NLB(Network Load Balancer)

高性能なロードバランサーで、秒間何百万のリクエストを捌くことが可能です。大規模なシステムに向いています。
L4のロードバランサーとして使用可能です。
フォールトトレランス機能が組み込まれており、数カ月から数年までコネクションを継続することができます。
ALBとは異なりクロスゾーン負荷分散はデフォルトでは無効です。

GLB(Gateway Load Balancer)

ALBやNLBはアプリケーションやサーバのロードバランサーとして機能するものですが、GLBは異なります。
クラウド上のセキュリティアプライアンス(ファイアウォールなど)をデプロイしたり、スケール、管理ができるようにするサービスです。対象のVPCにGLBエンドポイントを設置して、GLBにトラフィックを経由させることができます。
GLBを使わない場合に仮想アプライアンスを使おうとすると、例えばEC2インスタンスを立ち上げてネットワークセキュリティツールを導入してトラフィックを制御する方法が考えられますが、高可用性と拡張性に課題がありました。GLBはこの課題を簡単に解決できる方法を提供しています。

まとめ

通常アプリケーションを動かす上でロードバランサーの導入が必要な場合、ALBとNLBの2択で良さそうです。(CLBは古いタイプなので前提から除外しています)
基本的にはALBを選択、大規模なシステムで高パフォーマンスが必要な場合はNLBを選択というように性能の違いや使用したいプロトコルの違いなどで選択すると良いでしょう。
GLBはサードパーティ製の仮想アプライアンスを導入する際に使用を検討すると良いでしょう。

Discussion