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"
  }
}

참조