Orphaned network interfaces: How to Find Them and What They Cost

Orphaned network interfaces are ENIs left in the available state, holding IP addresses and blocking the deletion of the security groups and subnets they reference. They are one of the most reliable sources of pure waste in an AWS account, because nothing in the console flags them and nothing fails when they exist — the bill simply stays higher than it needs to be.

This page covers what they cost, the command that lists yours, and — importantly — what to check before deleting anything.

What they are and why they linger

An elastic network interface in the available state costs nothing directly, which is why it belongs in a cost review anyway: it holds a subnet address, keeps a security group undeletable, and blocks subnet and VPC deletion. That last one is the reason “I cannot delete this VPC” is one of the most common AWS support questions.

They are created on your behalf by many services — Lambda in a VPC, VPC endpoints, RDS, ECS tasks in awsvpc mode, EFS mount targets, Directory Service — and occasionally outlive their creator.

What they cost

Zero, directly. The costs are indirect and real: exhausted subnet addresses that block pod or task scheduling, an inability to tear down a decommissioned VPC (so everything else in it keeps billing), and security groups that cannot be cleaned up because something invisible still references them.

An orphaned ENI attached to an Elastic IP is a different matter — that combination bills the IPv4 charge indefinitely.

Finding yours

# Available ENIs, with what created them.
aws ec2 describe-network-interfaces --filters Name=status,Values=available \
  --query 'NetworkInterfaces[].{Id:NetworkInterfaceId,Subnet:SubnetId,Desc:Description,IP:PrivateIpAddress,Type:InterfaceType}' \
  --output table

The Description field is the key to attribution — it usually names the creator:

Description starts with Created by
AWS Lambda VPC ENI A VPC-attached Lambda function
VPC Endpoint Interface An interface VPC endpoint
ELB app/ or ELB net/ A load balancer node
RDSNetworkInterface An RDS instance
arn:aws:ecs: An ECS task in awsvpc mode
EFS mount target An EFS mount target
aws-K8S-i- The EKS VPC CNI on a node

Read the description before deleting. It tells you whether the parent resource still exists.

Before you delete

Deleting an ENI that a service still owns can break that service. Lambda ENIs in particular can appear idle between invocations; AWS manages their lifecycle and will clean them up on its own schedule after the function’s VPC configuration is removed.

Only delete an ENI when the resource named in its description is definitively gone. If the description names a Lambda function that still exists, leave it alone.

To find what is blocking a security group deletion:

aws ec2 describe-network-interfaces \
  --filters Name=group-id,Values=sg-0123456789abcdef0 \
  --query 'NetworkInterfaces[].[NetworkInterfaceId,Status,Description]' --output text

Stopping them coming back

Delete resources in dependency order, and prefer infrastructure-as-code that understands the graph. Most orphaned ENIs come from deleting a parent resource in the console while something else still referenced it.

When decommissioning a VPC, remove Lambda VPC configurations and interface endpoints first — those two account for the majority of ENIs that block a teardown.


Prices quoted are us-east-1 list rates, last checked on 2026-08-22, and are shown with the arithmetic so you can substitute the rates for your own region. Always confirm against the AWS pricing page before acting on a number.