An Elastic Network Interface (ENI) is a virtual network card within AWS’s Virtual Private Cloud (VPC). ENIs enable connectivity for EC2 instances and other resources in AWS. They are a core component of AWS networking, providing scalability, flexibility, and security.

Key Features and Use Cases of ENIs

ENIs provide primary and secondary IP addresses, enabling scalability and multi-service support. They are elastic, supporting dynamic attachment to instances, and enhance high availability by enabling failover between instances. Use Cases:

  • Scalable Applications: Assign secondary IPs for multiple services or horizontal scaling.
  • Multi-Networking: Connect instances to multiple subnets (e.g., private and public).
  • Elastic Load Balancing (ELB): Distribute traffic across backend instances.
  • High Availability: Retain IPs during failover by moving ENIs between instances.

ENIs in Kubernetes Networking

A single ENI can provide 10s or 30s secondary ips, depending on the instance type, making possible to avoid Overlay Networking in Kubernetes and instead using Amazon VPC CNI. Additionally, Pods with VPC-native IPs can directly communicate with other AWS resources (e.g., S3, RDS) without NAT.