📝

[小ネタ] Fargate でのタスク起動時に ENI のプロビジョニングが失敗した場合のエラーについて

に公開

Fargate の Amazon ECS のネットワークインターフェイスプロビジョニングエラーを解決する | AWS re:Post

Fargate が基盤となるホストで断続的に API の問題が発生していると、次のエラーが表示されることがあります。

  • Fargate サービスが、タスクを実行する基盤となるインフラストラクチャに Elastic Network Interface をアタッチしようとすると、次のエラーメッセージが表示されることがあります。「Timeout waiting for network interface provisioning to complete」(タイムアウト: ネットワークインターフェイスのプロビジョニングが完了するのを待機しています)
  • タスクのプロビジョニング状態中に Elastic Network Interface が作成されなかったために Fargate タスクを起動できない場合は、次のエラーメッセージが表示されることがあります。「Network interface provision complete error timeout wait for network interface provision」(ネットワークインターフェイスのプロビジョニングの完了エラー - タイムアウト: ネットワークインターフェイスのプロビジョニングを待機しています)

上記エラーは Fargate の基盤側が原因でタスクが起動できない場合に発生します。

RunTask の挙動について

RunTask - Amazon Elastic Container Service
コンソールや API から RunTask を実行するとネットワークインターフェース (ENI) が自動的に作成されます。
RunTask 時の CloudTrail の記録を確認すると、ネットワークインターフェースは AWS 側によって自動的に作成されていることを確認できます。

{
    "eventVersion": "1.10",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "xxx:ecs-eni-provisioning",
        "arn": "arn:aws:sts::012345678901:assumed-role/AWSServiceRoleForECS/ecs-eni-provisioning",
        "accountId": "012345678901",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "xxx",
                "arn": "arn:aws:iam::012345678901:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
                "accountId": "012345678901",
                "userName": "AWSServiceRoleForECS"
            },
            "attributes": {
                "creationDate": "2025-09-10T05:00:49Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "ecs.amazonaws.com"
    },
    "eventTime": "2025-09-10T05:00:53Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "CreateNetworkInterface",
    "awsRegion": "ap-northeast-1",
    "sourceIPAddress": "ecs.amazonaws.com",
    "userAgent": "ecs.amazonaws.com",
    "requestParameters": {
        "subnetId": "subnet-0f1c943a631285f62",
        "description": "arn:aws:ecs:ap-northeast-1:012345678901:attachment/61aa2d54-f4a7-488f-a0ed-4c65340d9696",
        "groupSet": {
            "items": [
                {
                    "groupId": "sg-0849e791c058df084"
                }
            ]
        },
        "privateIpAddressesSet": {},
        "clientToken": "xxx"
    },
    "responseElements": {
        "requestId": "bc590d44-be1f-44bf-9a2c-6d488605bbd1",
        "networkInterface": {
            "networkInterfaceId": "eni-026373a37b958bb23",
            "subnetId": "subnet-0f1c943a631285f62",
            "vpcId": "vpc-01cd73c01d9b87c15",
            "availabilityZone": "ap-northeast-1d",
            "description": "arn:aws:ecs:ap-northeast-1:012345678901:attachment/61aa2d54-f4a7-488f-a0ed-4c65340d9696",
            "ownerId": "012345678901",
            "requesterId": "012345678901",
            "requesterManaged": true,
            "operator": {
                "managed": false
            },
            "status": "pending",
            "macAddress": "0e:4d:c4:4d:99:c3",
            "privateIpAddress": "172.31.30.214",
            "privateDnsName": "ip-172-31-30-214.ap-northeast-1.compute.internal",
            "sourceDestCheck": true,
            "interfaceType": "interface",
            "groupSet": {
                "items": [
                    {
                        "groupId": "sg-0849e791c058df084",
                        "groupName": "default"
                    }
                ]
            },
            "privateIpAddressesSet": {
                "item": [
                    {
                        "privateIpAddress": "172.31.30.214",
                        "privateDnsName": "ip-172-31-30-214.ap-northeast-1.compute.internal",
                        "primary": true
                    }
                ]
            },
            "ipv6AddressesSet": {},
            "tagSet": {}
        }
    },
    "requestID": "bc590d44-be1f-44bf-9a2c-6d488605bbd1",
    "eventID": "9b71d67b-54c7-42a2-bea1-3fe1aff2d2d1",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "012345678901",
    "eventCategory": "Management"
}

CloudTrail の以下の記録からも AWS 側からの操作であることがわかります。

  • ユーザー名: ecs-eni-provisioning
  • 発信元 IP アドレス: ecs.amazonaws.com

以上を踏まえると、タスク起動時に ENI を作成する操作は AWS 側によって行われていることがわかります。
そのため、冒頭のエラーについても AWS 基盤側が原因である可能性が高いということになります。

対策について

対策についても冒頭のナレッジセンターに記載の通りです。

  • ECS サービスによる自動再起動
  • Step Functions によるリトライ

EventBridge からのタスクの定期実行に Step Functions を利用する例についても以下のブログで紹介されていますのでご参照ください。
Step Functions で ECS タスク(Fargate)を定期実行してみる | DevelopersIO

なお、AWS では冒頭のようなエラーが発生した根本原因については案内を行っていません。
技術的なお問い合わせに関するガイドライン | AWS サポート

AWS では、障害内容の詳細なご説明は行っておりません。詳細な原因等をお伝えしても、お客様の回避策には影響がなく、お客様の課題解決において本質的ではないと考えているためです。むしろ監視サービスの適切な活用や、一次復旧を優先する方法をご案内することで、お客様の課題を迅速に解決することを目指します。

そのため、上述の対策でリトライすることが有効です。

まとめ

今回は Fargate でのタスク起動時に ENI のプロビジョニングが失敗した場合のエラーについて紹介しました。
どなたかの参考になれば幸いです。

参考資料

Discussion