説明
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