AWS NLBのクライアントIPの保存はターゲットタイプとプロトコルでデフォルト値が違う

掲題の通りなのだが、
AWS NLBを採用するほとんど場合クライアントIPの保持したいので、ターゲットグループのクライアントIPアドレスの保持を有効にする必要があるのだが偶然にもこれまではデフォルト設定が有効のターゲットタイプでしか利用したことがなく今回ハマってしまった。

Terraformのドキュメントで言うと下記preserve_client_ipの部分。

詳しくはこちらと親切にAWSのドキュメントのリンクを用意してくれている。

インスタンスタイプのターゲットグループ: 有効
IP タイプのターゲットグループ (UDP、TCP_UDP): 有効
IP タイプのターゲットグループ (TCP、TLS): 無効

Network Load Balancers のターゲットグループ - Elastic Load Balancing

記載のある通りでこれまでターゲットタイプがインスタンスの場合にはデフォルト有効だったので意識することなく意図した挙動をしてくれていたので、今回ECS用に作ったターゲットグループではターゲットタイプがIPでTCPだったのでデフォルト無効になっていて上手くいかずに困ってしまった。

有効にしたい場合はTerraformならばpreserve_client_ipをtrueにすれば有効にしてくれる。