はじめに
AWS ALB を使おうとすると、リスナー、ターゲットグループといった設定が登場し、どの設定が何を意味しているのか理解するのが結構たいへんです。
この記事では、そんな ALB の主な設定をまとめます。
全体像
ALB の主な設定の全体像は以下の通りです。
以下、順に説明していきます。
リスナー
リスナーは、外部からアクセスするプロトコルやポートの設定です。
ロードバランサに対して、複数のリスナーを設定することができます。
ALB は HTTP と HTTPS に対応しているため、その両方か片方をリスナーとして登録することになります。
リスナールール・条件・アクション
リスナーに対して、複数のリスナールールを紐付けることができます。
リスナールールには優先順位の設定があり、順に条件を満たすか判定されます。
条件を満たすと、そのリスナーに対応するアクションが呼び出されます。
アクションの種類
アクションは 2020/7/8 時点で上図の 5 種類があります。
メンテナンス用の固定レスポンスを返す設定や、HTTP を HTTPS にリダイレクトする設定もできます。
アクションがフォワードの場合、フォワード先として指定されたターゲットグループが呼び出されます。
ターゲットグループ
ターゲットグループは、フォワード先として指定する、ターゲットを取りまとめたものです。
つまり、ロードバランシングする対象群のことです。
ターゲットに対してどのようにリクエストを振り分けるかというルーティングのアルゴリズムなどが設定可能です。
また、ターゲットに接続するポートもここで設定できますが、ターゲットごとに上書きすることが可能です。
ターゲット
最終的な接続先がターゲットです。
接続先は、ターゲットグループでターゲットの種類として設定した、インスタンス・IP・Lambda のどれかに限られます。
EC2 の AutoScaling グループや ECS のサービスに接続する場合は、AutoScaling グループや ECS のサービス側の設定でターゲットグループと紐付けることになります。
すると、ターゲットグループ側では、その AutoScaling グループや ECS サービスに紐付くインスタンス・コンテナがターゲットとして指定されるようになります。
おわりに
ALB の設定は入口から出口までが非常に遠く、一度設定したことがあっても迷子になりやすいです。
でも実は
- ロードバランサー
- リスナー
- リスナールール
- アクション
- ターゲットグループ
- ターゲット
という流れでリクエストが進んでいくようなイメージを持つことができれば、あとはどこが何の設定だったか確認するだけです。
この記事が ALB を初めてさわる方の理解の助けになれば幸いです。
参考
Web