ポート443でリッスンするALBをセットアップしようとしています。ランダムポートでECS Dockerコンテナーへの負荷分散を行っています。同じタスク定義の2つのコンテナーインスタンスがあり、ポート30000と30001でリッスンしているとします。
AWS EC2マネジメントコンソールでターゲットグループを作成しようとすると、1〜65535の範囲の「ポート」入力フィールドがあります。そこに何を入れればいいですか?
また、AWS EC2 Container Serviceコンソールで新しいサービスを作成しようとすると、既存のALBに接続するための新しいターゲットグループがあり、ターゲットグループの「ポート」に入力フィールドがありません。作成後、EC2コンソールに移動すると、新しいターゲットグループのポートは「80」になります。ポート80でリッスンする必要がありますか?しかし、ヘルスチェックは「トラフィックポート」、つまりコンテナポート30000と30001に対して行われるので、何が重要なのでしょうか。
結局のところ、ECSと組み合わせると、ターゲットグループのポートは何の意味もありません。そのポートをリッスンする必要はありません。
私は自分でこの状況に遭遇しました。ターゲットグループポートと登録済みインスタンスのポートが異なることに気付きました。私は通常、それらを同じものに設定したので、これが何なのか、このスレッドに私を導いたのかと思いました。 AWSドキュメントで適切な答えを見つけることができませんでしたが、aws_lb_target_groupリソースのTerraformドキュメントでこれを見つけました。
port-(オプション、新しいリソースを強制する)特定のターゲットを登録するときにオーバーライドされない限り、ターゲットがトラフィックを受信するポート。
したがって、オーバーライドしない限り、これは使用されるデフォルトのポートにすぎないと思います。理にかなっています。
彼が言っているのは健康診断だと思います。 ELBがポート443でリッスンしているが、ターゲットグループがポート80に設定されている場合、ターゲットグループのすべてのヘルスチェックはポート80でリクエストを試行し、ロードバランサーによってポート443にリダイレクトされます。これにより、301コードが生成されますが、これは不健全と見なされます。正常と見なされるのは200コードのみです。その時点で、すべての異常なターゲットが常に存在するか、301を正常なコードのリストに追加します。これにより、ポート80に対して常に301が返されるため、ヘルスチェックのポイント全体が無効になります。ポートを一致させることもできます。
ターゲットグループのポートは、自動スケーリンググループと組み合わせて使用されます。これらのポートを使用する予定がある場合は、最初から正しいポートを使用する必要があります。どうして?ターゲットグループが作成された後は変更できず、ポートを誤って設定すると自動スケーリングが機能しなくなるためです。