これは何

ALBのリダイレクトが、意図した通りにリダイレクト先に飛ばないときの解決のメモです。

原因

リスナールールの順位を意識していなかったから。(単純)

ルールは、ただの並び順だと思ってました…
ちゃんとドキュメントにも載ってますね。

これが分からずに、結構時間を食ってしまいました…

どういうことかというと、私の場合、

一番上の順位に、

IF
ホストがexample.com

THEN
リダイレクト先
ターゲットグループ

というルールを入れていました。

なので、その下順位ルールで、

IF
ホストがexample.com
パスが/a*

THEN
リダイレクト先
a-example.com

とか入れても、最上位ルールが全てをかっさらっていくので、設定したルールが動作しなかったということです。

この最上位ルールというものを一番下順位にしたところ、作成した他リスナーが息を吹き返しました。

これとは別に、リスナールールのIF条件でもハマりました。

IF
ホストがexample.com
パスが/a*

THEN
リダイレクト先
a-example.com

という①ルールがあるとします。
一方で、その下順位に、

IF
ホストがexample.com
パスが/ab*

THEN
リダイレクト先
b-example.com

というルール②があった場合、①ルールの、パスが/a*が優先され、a-example.comに飛んでしまいます。

ルール②の、パスが/abの部分が/aの時点でルール①の/aに引っかかってしまっているからですね。

ルール②>ルール①の並びにしたところ、意図する動作になりました。

参考
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/listener-update-rules.html

元記事はこちら

https://qiita.com/namely_/items/8175782f4bee85df838b