27. ENI vs ENA vs EFA

ENI – Elastic Network Interface EN – Enhanced Networking EFA – Elastic Fabric Adapter
A virtual network card on EC2 instance Uses single root I/O virtualization (SR-IOV) to provide high-performance networking capabilities on supported instance types. SR-IOV is a method of device virtualization that provides higher I/O performance & lower CPU utilization when compared to traditional virtualized network interfaces A network device that you can attach to EC2 instance to accelerate HPC and machine learning applications.
When we provision an EC2 instance it going to have an ENI attached to it automatically and also we can add additional ones Provides higher bandwidth, higher packet per sec (PPS) performances & consistently lower-instance latencies. No additional cost for using EN. Provides lower & more consistently latency & higher throughput than traditional TCP transport used in cloud-based HPC systems.
It allows a primary private IPv4 address from the IPv4 address range of VPC Use when we want good performance EFA can use OS-bypass. OS-bypass enables HPC & ML applications to by pass the OS Kernel & to communicate directly with EFA device. It makes a lot faster with a lot lower latency. Not supported on windows, currently only Linux
It allows one or more secondary private IPv4 addresses from the IPv4 address range of VPC We go with EN when ENIs doesnt support When we need to accelerate HPC & ML application or if we need to do an OS bypass
One elastic IP address (IPv4) per private IPv4 address
Depending on instance type, enhanced networking can be enabled using

Elastic Network Adapter (ENA) Virtual Function (VF)
Supports n/w speed upto 100 Gbps for supported instance types Intel 82599 VF interface supports n/w speed upto 10Gbps for supported instance types. Typically used in order instances

One public IPv4 address. One or more IPv6 addresses. One or more security groups When we need speeds between 10 Gbps & 100 Gbps. Anywhere we need reliable, high throughput
A MAC address
A source/ destination check flag
A description usage scenario:
We might have multiple ENIs if we want to create a management network
We need additional ENIs when:
i. We create a management n/w
ii. Use n/w & security appliances in VPC
iii. Create dual-homed instances with workloads/ roles on distinct subnets.
iv. Create a low budget, high availability solution.
For basic networking: Perhaps we need a separate management n/w to production n/w or a separate logging n/w & we need to do this at low cost. In this scenario use multiple ENIs for each n/w

Question 1:
A legacy tightly-coupled High Performance Computing (HPC) application will be migrated to AWS. Which network adapter type should be used?
A. Elastic Network Adapter (ENA)
B. Elastic IP Address
C. Elastic Network Interface (ENI)
D. Elastic Fabric Adapter (EFA)
Answer: D
An Elastic Fabric Adapter is an AWS Elastic Network Adapter (ENA) with added capabilities. The EFA lets you apply the scale, flexibility, and elasticity of the AWS Cloud to tightly-coupled HPC apps. It is ideal for tightly coupled app as it uses the Message Passing Interface (MPI).
CORRECT: “Elastic Fabric Adapter (EFA)” is the correct answer.
INCORRECT: “Elastic Network Interface (ENI)” is incorrect. The ENI is a basic type of adapter and is not the best choice for this use case.
INCORRECT: “Elastic Network Adapter (ENA)” is incorrect. The ENA, which provides Enhanced Networking, does provide high bandwidth and low inter-instance latency but it does not support the features for a tightly-coupled app that the EFA does.
INCORRECT: “Elastic IP Address” is incorrect. An Elastic IP address is just a static public IP address, it is not a type of network adapter.