【AWS】【Terraform】The container {container_name} did not have a container port {port_number} defined.


状況

Fargateでnginxコンテナを起動してトップページが表示されるか確認したい

Error文 : The container test did not have a container port 80 defined.

Terraformのコード上ではportMappingは80番portで記入されており問題なし。

コンソールで実態確認


ポートマッピングが反映されていない。と思ったら上のCPUユニット数も反映されていない。これか!

結論

container_definition.jsonにコンテナに割り当てる、"cpu", "memory"の記述がなかった。

Fargateでは必須の模様

公式リファレンス AWS:ECS:TaskDefinition


container_definitions/service.json

[
  {
    "name": "nginx",
    "image": "nginx:latest",
    "cpu": 256, # 追加
    "memory": 512, # 追加
    "essential": true,
    "network_mode": "awsvpc",
    "portMappings": [
      {
        "containerPort": 80,
        "protocol": "tcp"
      }
    ]
  }
]

反映されましたね