Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AWS: Elastic IP vs ENI

As far as high availability goes, what is the difference between using an Elastic IP or an Elastic Network Interface to mask instance failure? Is the only difference because ENIs can be used for private instances and Elastic IPs can't?

I'm trying to explain the advantages of both, so if someone can help me with this, I would appreciate it!

like image 864
user3859018 Avatar asked Apr 13 '16 19:04

user3859018


People also ask

What is EIP and ENI?

EIP. A static IPv4 address (it can private or public) ENI. A network interface that can be attached to an EC2 instance. Internet Gateway.

What is an AWS 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.

Does an Eni have an IP address?

ENI consists of the followingOne elastic IP address per private IP addresses. One public IP address, which can be auto-assigned only to the primary elastic network interface eth0. One or more security groups. A MAC address.

What is the difference between ENA and ENI?

Key Differences Elastic Network Adapter (ENA) is only available on the X1 instance type, Elastic Network Interfaces (ENI) are ubiquitous across all EC2 instances and Elastic Fabric Adapters are available for only certain instance types.


1 Answers

To achieve High Availability, you need the ability to redirect traffic in the case of instance failure. There are several options:

1. Use an Elastic Load Balancer

This is the preferred way to provide High Availability.

Run multiple Amazon EC2 instances, preferably in different Availability Zones (AZs). Users connect to the ELB (via the supplied DNS name), which redirects traffic to the EC2 instances. If an instance fails, ELB notices this via regular Health Checks, and will only direct traffic to the healthy instances.

Auto Scaling can be used to create these multiple instances across multiple Availability Zones, and it can also update the Load Balancing service when it adds/removes instances.

2. Redirect an Elastic IP address

Run multiple instances (preferably across multiple Availability Zones). Point an Elastic IP address to the instance you desire. Users connect via the Elastic IP address and are directed to the instance. If the instance fails, reassociate the Elastic IP address to a different instance, which will then start receiving the traffic immediately.

This method is not recommended because only one instance is receiving all the traffic while the other instance(s) are sitting idle. It also requires a mechanism to detect failure and reassociate the Elastic IP (which you must do yourself).

3. Reassign an Elastic Network Interface (ENI)

All EC2 instances have a primary ENI. They can optionally have additional ENIs.

It is possible to direct traffic to a secondary ENI and then move that secondary ENI to another instance. This is similar to reassigning an Elastic IP address.

This method is not recommended for the same reason as reassociating an Elastic IP address (above), but also because an ENI can only be reassigned within the same AZ. It cannot be used to direct traffic to an EC2 instance in a different AZ.

Bottom line: Use an Elastic Load Balancer. It provides true High Availability and can do it automatically.

See documentation: What Is Elastic Load Balancing?

like image 181
John Rotenstein Avatar answered Oct 02 '22 20:10

John Rotenstein