ALB は Application Load Balancer の略で、AWS の ロードバランサー の一種です。主に HTTP / HTTPS のリクエストを受けて、複数の EC2 やコンテナ、IP アドレスなどへ振り分けるときに使います。
ALB を理解するときは、次の流れで見ると分かりやすいです。
- ALB が外部からの入口になる
- リスナーがポートとプロトコルを受け持つ
- ルールがホスト名やパスなどで行き先を決める
- ターゲットグループ内の正常なサーバーへ流す
大事なのは、ALB が単に均等配分するだけではないことです。
AWS公式でも、ALB はリスナーのルールを見てターゲットグループを選び、ヘルスチェックで正常と判定したターゲットへだけ送ると説明されています。
そのため、次のような用途でよく使われます。
- Webアプリを複数台の EC2 で動かしたい
/apiと/appで行き先を分けたいexample.comとadmin.example.comで振り分けたい- HTTPS の終端を入口でまとめたい
- Auto Scaling と組み合わせて台数を増減したい
AWS公式では、ALB はリスナーとルールを持ち、ターゲットグループ単位で配送先を決めます。
そのため、単純に「2台へ半分ずつ流す箱」というより、Webアプリの入口で交通整理するサービス と理解したほうが実態に近いです。
また、ALB は壊れたサーバーにも無条件で流すわけではありません。
ターゲットグループごとにヘルスチェックを設定でき、正常と判定したターゲットにだけ配送しやすいのが大きな特徴です。
初心者が最初に押さえるなら、次の4点で十分です。
- ALB は HTTP / HTTPS の入口
- パスやホスト名で行き先を分けられる
- 正常な EC2 にだけ流しやすい
- EC2 を複数台にしたり、Auto Scaling したりする構成と相性が良い
逆に、HTTP レベルではなく TCP レベルの透過転送を重視するなら、別のロードバランサーが向く場面もあります。
詳しくは ALBとは?複数EC2へ振り分ける入口の基本をAWSで整理 でまとめています。