All Articles

AWS ALB の設定方法は?リスナー?ターゲットグループ?

はじめに

AWS ALB を使おうとすると、リスナー、ターゲットグループといった設定が登場し、どの設定が何を意味しているのか理解するのが結構たいへんです。

この記事では、そんな ALB の主な設定をまとめます。

全体像

ALB の主な設定の全体像は以下の通りです。

AWS_ALB

以下、順に説明していきます。

リスナー

AWS_ALB-listener

リスナーは、外部からアクセスするプロトコルやポートの設定です。

ロードバランサに対して、複数のリスナーを設定することができます。

ALB は HTTP と HTTPS に対応しているため、その両方か片方をリスナーとして登録することになります。

リスナールール・条件・アクション

AWS_ALB-listener-rule

リスナーに対して、複数のリスナールールを紐付けることができます。

リスナールールには優先順位の設定があり、順に条件を満たすか判定されます。

条件を満たすと、そのリスナーに対応するアクションが呼び出されます。

アクションの種類

AWS_ALB-action

アクションは 2020/7/8 時点で上図の 5 種類があります。

メンテナンス用の固定レスポンスを返す設定や、HTTP を HTTPS にリダイレクトする設定もできます。

アクションがフォワードの場合、フォワード先として指定されたターゲットグループが呼び出されます。

ターゲットグループ

AWS_ALB-target-group

ターゲットグループは、フォワード先として指定する、ターゲットを取りまとめたものです。

つまり、ロードバランシングする対象群のことです。

ターゲットに対してどのようにリクエストを振り分けるかというルーティングのアルゴリズムなどが設定可能です。

また、ターゲットに接続するポートもここで設定できますが、ターゲットごとに上書きすることが可能です。

ターゲット

AWS_ALB-target

最終的な接続先がターゲットです。

接続先は、ターゲットグループでターゲットの種類として設定した、インスタンス・IP・Lambda のどれかに限られます。

EC2 の AutoScaling グループや ECS のサービスに接続する場合は、AutoScaling グループや ECS のサービス側の設定でターゲットグループと紐付けることになります。

すると、ターゲットグループ側では、その AutoScaling グループや ECS サービスに紐付くインスタンス・コンテナがターゲットとして指定されるようになります。

おわりに

ALB の設定は入口から出口までが非常に遠く、一度設定したことがあっても迷子になりやすいです。

でも実は

  1. ロードバランサー
  2. リスナー
  3. リスナールール
  4. アクション
  5. ターゲットグループ
  6. ターゲット

という流れでリクエストが進んでいくようなイメージを持つことができれば、あとはどこが何の設定だったか確認するだけです。

この記事が ALB を初めてさわる方の理解の助けになれば幸いです。

参考

Web