概要
AWS CloudFormationで構築したAWS環境にて、Blue/Green DeploymentのCodeDeployを走らせたら以下のエラーに遭遇しました。
The ELB could not be updated due to the following error: Primary taskset target group is not behind any rule for listener arn:aws:elasticloadbalancing:ap-northeast-1:0123456789:listener/app/XXX/XXXX/XXXXXX.
こちらのエラーの原因と解決方法を記載します。
結論
デプロイメントグループの設定に問題がありました。
ELBのリスナー設定では443
と8080
だったのに対して、デプロイメントグループでは、80
と8080
にしていました(凡ミス)。。。これをELBの設定と同じにしたらエラーがなくなりました。
つまり、ポート番号の不一致が発生して正しくリクエストがルーティングされなかった、ということです。ポート番号とプロトコルの設定は、ELBのリスナーとデプロイメントグループの設定で一致している必要があります。
他に考えられる原因
このエラーの他に考えられる原因としては、以下を確認するといいでしょう。
- ターゲットグループが正しくELBのリスナーに関連付けられているか?
- ELBのリスナー設定で、リスナーが適切なポートとプロトコルで設定されているか?
- ターゲットグループが正しいポートとプロトコルを使用しているか?