ロードバランサーの種類について
昨日、AWS Black Belt Online SeminarにてちょうどELBが取り上げられていたので、ELBの種類についておさらいしたいと思います。
Black Belt Online Seminarは、中級者向けと記載の通り、AWSのオペレーションをほとんど行ったことがない方にとっては、少し難しくペースも早いと感じると思います(僕がそうでした)最初は、Webのチュートリアルや入門書籍で慣れてから見る方が良いと思います。
ELBとは
"Elastic Load balancing"の略で、AWSでの、ロードバランシング機能を提供するサービスです。ELBにも種類があります。
具体的には、上記で紹介されているALB, NLB, CLBです。
LBと名が付くものが複数出てくるのでしばらく混乱していましたが、整理すると以下のようなイメージです。
ELB(上位概念:AWSのロードバランシングサービス)
- ALB (Application Load balancing)
- NLB (Network Load balancing)
- CLB (Classic Load balancing)
ALBも、NLBも、CLBもすべてELBなのです。それぞれどういう関係なのか分からず、最初これでつまずきました。業務で「ELB」の単語が出たときは、どれのことなのか意識しておかなくてはなりません。
ALBとは
ALB (Application Load balancing)は、L7(レイヤー7: アプリケーション層)で負荷分散します。情報処理技術者試験でおなじみの、OSI参照モデル(アプセトネデブ..)の一番上位のレイヤーですね。例えば、URLのパスやホストベースにルールを決めることができます。ルールは段階的に設定できます(IF-THEN方式)
※画像は https://www.infraexpert.com/study/networking3.html より引用させていただきました
NLBとは
NLB (Network Load balancing)は、L4(レイヤー4: トランスポート層)で負荷分散します。例えば、TCPプロトコルやポート番号をルールを決めることができます。暖気不要で、突発的なトラフィックに対応できます。ターゲットから見ると、クライアントと直接通信しているようにしか見えません。
CLBとは
CLB (Classic Load balancing)はL4/L7の負荷分散が可能です。このCLBですが、特殊なケース以外ではほぼ使うことは無いそうです。EC2-Classicという旧型のEC2を使う場合とからしいですね。
※元々AWSのロードバランサーはELBという名称で1種類だけであったのですが、ALBとNLBが新しく追加されたことでELBは上位概念の名称となり、過去のELBがCLBとう名称に変更になったとのことです。
ELB自体もスケーラブル
EC2インスタンスだけではなくELBもスケーラブルで、高負荷時にスケールアップ・スケールアウトが可能です。
クロスゾーン負荷分散
異なるAZに負荷分散を行っており、それぞれのAZでEC2インスタンスの数が違う場合でも、それぞれ均等になるよう負荷分散することが可能です。
ルーティングアルゴリズム
ALBは「ラウンドロビン」、NLBは「フローハッシュ」(IPヘッダーのハッシュ値によるルーティング) です。
コスト
CLBに比べ、ALB/NLBの方が圧倒的に安価です。これからシステムを構築する際は、よほどのことが無い限り、ALBかNLBを使うことになるでしょう。
クラウドネイティブ・アーキテクチャ 可用性と費用対効果を極める次世代設計の原則 (impress top gear)
- 作者: Tom Laszewski,Kamal Arora,Erik Farr,Piyum Zonooz,株式会社トップスタジオ
- 出版社/メーカー: インプレス
- 発売日: 2019/11/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る