AWS ENI vs EN vs EFA
AWS: Elastic Network Interface (ENI), Enhanced Networking (EN) or Enhanced Network Adapter (ENA), Elastic Fabric Adapter (EFA)
Hi Folks,
This block is telling you about the Amazon web service’s (NIC’s) Network interface card used in EC2 VM’s and its different types. I have mentioned the use cases and differences in all NIC’s types. It will be helpful in the AWS Solution Architect Associate exam preparation too.
Elastic Network Interface (ENI):
An elastic network interface is a logical networking component in a VPC that represents a virtual network card. It can include the following attributes:
- A primary private IPv4 address from the IPv4 address range of your VPC
One or more secondary private IPv4 addresses from the IPv4 address range of your VPC - One Elastic IP address (IPv4) per private IPv4 address
- One public IPv4 address
- One or more IPv6 addresses
- One or more security groups
- A MAC address
- A source/destination check flag
- A description
Use Cases:
ENI:
- Utilize this for normal use, like Web servers, DB servers, etc.
- This is the basic adapter type for when you don’t have any high-performance requirements.
- All instance types have an ENI.
Enhanced Network Adapter (ENA):
Elastic Network Adapter (ENA), the next-generation network interface and accompanying drivers that provide Enhanced Networking on EC2 instances.
ENA is a custom network interface optimized to deliver high throughput and packet per second (PPS) performance, and consistently low latencies on EC2 instances. Using ENA, customers can utilize up to 20 Gbps of network bandwidth on certain EC2 instance types.
Supported Instances: X1 instances
Support network speed up to 100GBPS only for supported instances
Intel 82599 Virtual Function Interface (VFI) is part of this (EN), which supports up to 10GBPS only for supported instance type (mostly older instance type).
Use Cases:
- Good for use cases that require higher bandwidth and lower inter-instance latency.
- Supported for limited instance types (HVM only).
Elastic Fabric Adapter (EFA):
EFA brings the scalability, flexibility, and elasticity of the cloud to tightly-coupled HPC (High-performance computing)applications.
With EFA, tightly-coupled HPC applications have access to lower and more consistent latency and higher throughput than traditional TCP channels, enabling them to scale better.
An EFA is an Elastic Network Adapter (ENA) with added capabilities. It provides all of the functionality of an ENA, with additional OS-bypass functionality.
OS-bypass is an access model that allows HPC and machine learning applications to communicate directly with the network interface hardware to provide low-latency, reliable transport functionality.
Traditionally, HPC applications use the Message Passing Interface (MPI) to interface with the system’s network transport. In the AWS Cloud, this has meant that applications interface with MPI, which then uses the operating system’s TCP/IP stack and the ENA device driver to enable network communication between instances.
With an EFA, HPC applications use MPI or NCCL to interface with the Libfabric API.
The Libfabric API bypasses the operating system kernel and communicates directly with the EFA device to put packets on the network.
This reduces overhead and enables the HPC application to run more efficiently.
Supported instance type: c5n.18xlarge, c5n.metal, i3en.24xlarge, i3en.metal, inf1.24xlarge, m5dn.24xlarge, m5n.24xlarge, r5dn.24xlarge, r5n.24xlarge, and p3dn.24xlarge.
Note: EFA support can be enabled either at the launch of the instance or added to a stopped instance. EFA devices cannot be attached to a running instance
EFA limitations:
- You can attach only one EFA per instance.
- EFA OS-bypass traffic is limited to a single subnet. In other words, EFA traffic cannot be sent from one subnet to another. Normal IP traffic from the EFA can be sent from one subnet to another.
- EFA OS-bypass traffic is not routable. Normal IP traffic from the EFA remains routable.
- The EFA must be a member of a security group that allows all inbound and outbound traffic to and from the security group itself.
Use Caes:
- High-Performance Computing.
- MPI and Machine Learning use cases.
- Tightly coupled applications.
Differences between an EFA, ENI and an ENA ENI?
- An ENA ENI provides traditional IP networking features necessary to support VPC networking.
- An EFA ENI provides all the functionality of an ENA ENI, plus hardware support for applications to communicate directly with the EFA ENI without involving the instance kernel (OS-bypass communication) using an extended programming interface.
- Due to the advanced capabilities of the EFA ENI, EFA ENIs can only be attached at launch or to stopped instances.
Conclusion:
In this blog, I have clearly explained, Elastic Network Interface (ENI), Enhanced Networking (EN) or Enhanced Network Adapter(ENA), Elastic Fabric Adapter (EFA), and their use cases. This is helpful for a new or existing setup for customers using AWS EC2 & in hands-on. Also, it will be helpful, while preparing the AWS solution architect associate exam. Few questions will be asked from this topic.
For more info please connect & Follow me on:
LinkedIn: https://www.linkedin.com/in/vkmanik/
Email: varunmanik1@gmail.com
Facebook: https://www.facebook.com/cloudvirtualization/
References:
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html
- https://aws.amazon.com/hpc/faqs/
- https://aws.amazon.com/about-aws/whats-new/2016/06/introducing-elastic-network-adapter-ena-the-next-generation-network-interface-for-ec2-instances/
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html