설명
awsvpc는 ECS 태스크마다 네트워크 인터페이스를 제공해 태스크 단위 보안 그룹을 적용할 수 있습니다. Fargate에는 이 모드가 필요하지만 EC2에서는 용도에 따라 다른 모드도 유효합니다. none은 외부 통신을 제공하지 않습니다.
잠재적 영향
네트워크 모드가 요구사항과 맞지 않으면 필요한 통신이 차단되거나 태스크별 접근 제어를 적용하기 어려울 수 있습니다.
해결 방법
태스크별 네트워크 제어가 필요하면 NetworkMode: awsvpc를 사용하고 서비스나 태스크 실행 시 서브넷과 보안 그룹을 지정하세요. 외부 통신이 불필요한 태스크의 none 설정을 일괄 변경하지 마세요.
예시
예시는 외부 통신이 필요한 태스크를 가정해 none에서 awsvpc로 바꿉니다. 태스크 크기와 실행 시 네트워크 설정은 생략했습니다.
변경 전
yaml
Resources:
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
NetworkMode: none
ContainerDefinitions:
- Name: app
Image: amazon/amazon-ecs-sample
변경 후
yaml
Resources:
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
NetworkMode: awsvpc
ContainerDefinitions:
- Name: app
Image: amazon/amazon-ecs-sample