これは何
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