ECSタスクのネットワークモードの確認

ECSタスクの通信要件に適したネットワークモードを選択してください。

説明

awsvpcモードでは、タスクごとに専用のネットワークインターフェイスが割り当てられ、タスク単位でセキュリティグループを適用できます。Fargateではこのモードが必須です。EC2上のタスクでは、ワークロードに適したモードを選択してください。

想定される影響

hostやbridgeでは、awsvpcのようにタスク単位でセキュリティグループを直接適用できません。一方、noneは外部とのネットワーク通信を提供しないため、それ自体が外部公開を意味するわけではありません。

対処方法

タスク単位のネットワーク制御が必要な場合は、network_mode = "awsvpc"を設定し、サービスのサブネットとセキュリティグループを構成してください。変更前に、ポートマッピングと通信要件を確認してください。

例

以下は、ネットワークモードのみを比較するEC2タスク定義の抜粋です。必須のコンテナー定義は省略しています。noneからawsvpcへ変更すると、ネットワーク通信が可能になります。

変更前

hcl
resource "aws_ecs_task_definition" "example" {
  family       = "service"
  network_mode = "none"

  volume {
    name      = "service-storage"
    host_path = "/ecs/service-storage"
  }
}

変更後

hcl
resource "aws_ecs_task_definition" "example" {
  family       = "service"
  network_mode = "awsvpc"

  volume {
    name      = "service-storage"
    host_path = "/ecs/service-storage"
  }
}

参考資料