Create and attach an Elastic Fabric Adapter to an Amazon EC2 instance
You can create an EFA and attach it to an Amazon EC2 instance much like any other elastic
network interface in Amazon EC2. However, unlike elastic network interfaces, EFAs can't be
attached to or detached from an instance in a running
state.
Considerations
-
You can change the security group that is associated with an EFA. To enable OS-bypass functionality, the EFA must be a member of a security group that allows all inbound and outbound traffic to and from the security group itself. For more information, see Step 1: Prepare an EFA-enabled security group.
You change the security group that is associated with an EFA in the same way that you change the security group that is associated with an elastic network interface. For more information, see Changing the security group.
-
You assign an Elastic IP (IPv4) and IPv6 address to an EFA (EFA with ENA) network interface in the same way that you assign an IP address to an elastic network interface. For more information, see Managing IP addresses.
You can't assign an IP address to an EFA-only network interface.
Tasks
Create an EFA
You can create an EFA in a subnet in a VPC. You can't move the EFA to another subnet after it's created, and you can only attach it to stopped instances in the same Availability Zone.
Attach an EFA to a stopped instance
You can attach an EFA to any supported instance that is in the stopped
state.
You cannot attach an EFA to an instance that is in the running
state. For more
information about the supported instance types, see
Supported instance types.
You attach an EFA to an instance in the same way that you attach a network interface to an instance. For more information, see Attach a network interface.
Attach an EFA when launching an instance
To attach an existing EFA when launching an instance (AWS CLI)
Use the run-instances command.
For --network-interfaces
, specify the EFA network interfaces to attach.
For the primary network interface, specify an EFA network interface and
NetworkCardIndex=0
, DeviceIndex=0
. If you are attaching multiple
EFA network interfaces, see Maximize network bandwidth on Amazon EC2 instances with multiple network cards.
aws ec2 run-instances \ --image-id
ami_id
\ --count1
\ --instance-typec5n.18xlarge
\ --key-namemy_key_pair
\ --network-interfaces "NetworkCardIndex=0
,DeviceIndex=0
,NetworkInterfaceId=efa_1_id
,Groups=sg_id
,SubnetId=subnet_id
" ...
To attach a new EFA when launching an instance (AWS CLI)
Use the run-instances command.
For --network-interfaces
, specify the EFA network interfaces to attach.
For the primary network interface, use NetworkCardIndex=0
, DeviceIndex=0
,
and InterfaceType=efa
. If you are attaching multiple EFA network interfaces,
see Maximize network bandwidth on Amazon EC2 instances with multiple network cards.
aws ec2 run-instances \ --image-id
ami_id
\ --count1
\ --instance-typec5n.18xlarge
\ --key-namemy_key_pair
\ --network-interfaces "NetworkCardIndex=0
,DeviceIndex=0
,Groups=security_group_id
,SubnetId=subnet_id
,InterfaceType=efa
" ...
Add an EFA to a launch template
You can create a launch template that contains the configuration information needed to launch
EFA-enabled instances. You can specify both EFA and EFA-only network interfaces in the launch
template. To create an EFA-enabled launch template, create a new launch template and specify
a supported instance type, your EFA-enabled AMI, and an EFA-enabled security group. For
NetworkInterfaces
, specify the EFA network interfaces to attach. For the primary
network interface, use NetworkCardIndex=0
, DeviceIndex=0
, and
InterfaceType=efa
. If you are attaching multiple EFA network interfaces,
see Maximize network bandwidth on Amazon EC2 instances with multiple network cards.
You can leverage launch templates to launch EFA-enabled instances with other AWS services, such as AWS Batch or AWS ParallelCluster.
For more information about creating launch templates, see Create an Amazon EC2 launch template.