创建 Elastic Fabric Adapter 并将其附加到 Amazon EC2 实例
您可以创建 EFA 并将其附加到 Amazon EC2 实例,就像 Amazon EC2 中的任何其他弹性网络接口一样。不过,与弹性网络接口不同,无法将 EFA 附加到处于 running
状态的实例,也无法将其从处于该状态的实例中分离。
注意事项
-
您可以更改与 EFA 关联的安全组。要启用操作系统绕过功能,EFA 必须是一个安全组的成员,以允许进出安全组本身的所有入站和出站流量。有关更多信息,请参阅 步骤 1:准备启用 EFA 的安全组。
您可以使用更改与弹性网络接口关联的安全组的相同方式更改与 EFA 关联的安全组。有关更多信息,请参阅 修改网络接口属性。
-
您可以使用将 IP 地址分配给弹性网络接口的相同方式将弹性 IP (IPv4) 和 IPv6 地址分配给 EFA(带 ENA 的 EFA)。有关更多信息,请参阅管理 IP 地址。
您不能为仅限 EFA 的网络接口分配 IP 地址。
创建 EFA
您可以在 VPC 上的子网中创建 EFA。在创建 EFA 后,您无法将其移动到另一个子网,并且只能将其附加到同一可用区中的已停止实例。
- Console
-
创建 EFA(带 ENA 的 EFA 或仅限 ENA)网络接口
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格中,选择 Network Interfaces(网络接口),然后选择 Create network interface(创建网络接口)。
-
对于 Description (描述),请输入一个描述性的 EFA 名称。
-
对于 Subnet (子网),请选择要在其中创建 EFA 的子网。
-
接口类型,选择以下选项之一:
-
(仅适用于带 ENA 的 EFA)为网络接口配置 IP 地址和前缀分配。您可以分配的 IP 地址和前缀类型取决于所选的子网。对于仅限 IPv4 的子网,您只能分配 IPv4 IP 地址和前缀。对于仅限 IPv6 的子网,您只能分配 IPv6 IP 地址和前缀。对于双栈子网,可同时分配 IPv4 和 IPv6 IP 地址和前缀。
您不能为仅限 EFA 的网络接口分配 IP 地址。
-
对于私有 IPv4 地址和/或 IPv6 地址,选择自动分配以使 Amazon EC2 从选定子网中自动分配 IP 地址,或选择自定义以手动指定要分配的 IP 地址。
-
如果您分配 IPv6 地址,则可以选择启用分配主 IPv6 IP。此操作将为网络接口分配一个主 IPv6 全局单播地址(GUA)。分配主要 IPv6 地址使您能够避免中断实例或 ENI 的流量。有关更多信息,请参阅 IPv6 地址。
-
对于 IPv4 前缀委派和/或 IPv6 前缀委派,选择自动分配以使 Amazon EC2 自动从子网的 CIDR 块中分配前缀,或选择自定义以从子网的 CIDR 块中手动指定前缀。如果您指定前缀,则 AWS 会验证其是否已分配给其他资源。有关更多信息,请参阅 Amazon EC2 网络接口的前缀委派。
-
(可选)配置空闲连接跟踪超时设置。有关更多信息,请参阅 空闲连接跟踪超时。
-
TCP 建立超时:处于已建立状态的空闲 TCP 连接的超时时间(秒)。最小值:60 秒。最大值:432000 秒(5 天)。默认值:432000 秒。建议值:小于 432000 秒。
-
UDP 超时:空闲 UDP 流的超时时间(秒),这些流仅在单个方向或单个请求-响应事务中看到流量。最小值:30 秒。最大值:60 秒。默认值:30 秒。
-
UDP 流超时:空闲 UDP 流的超时时间(秒),这些流被归类为已看到多个请求-响应事务的流。最小值:60 秒。最大值:180 秒(3 分钟)。默认值:180 秒。
-
对于 Security groups,选择一个或多个安全组。
-
选择创建网络接口。
- AWS CLI
-
创建 EFA
使用 create-network-interface 命令。对于 --interface-type
,针对 EFA 网络接口指定 efa
或针对仅限 EFA 的网络接口指定 efa-only
。
aws ec2 create-network-interface \
--subnet-id subnet-0abcdef1234567890
\
--interface-type efa
\
--description "my efa
"
- PowerShell
-
创建 EFA
使用 New-EC2NetworkInterface cmdlet。对于 -InterfaceType
,针对 EFA 网络接口指定 efa
或针对仅限 EFA 的网络接口指定 efa-only
New-EC2NetworkInterface `
-SubnetId subnet-0abcdef1234567890
`
-InterfaceType efa
`
-Description "my efa
"
将 EFA 附加到停止的实例
您可以将 EFA 附加到处于 stopped
状态的任何支持的实例。您无法将 EFA 附加到处于 running
状态的实例。有关支持的实例类型的更多信息,请参阅支持的实例类型。
您可以使用将网络接口连接到实例的相同方式将 EFA 连接到实例。有关更多信息,请参阅附加网络接口。
在启动实例时附加 EFA
- AWS CLI
-
在启动实例时附加现有的 EFA
使用 run-instances 命令和 --network-interfaces
选项。对于主网络接口,指定 EFA 网络接口以及 NetworkCardIndex=0
、DeviceIndex=0
。要附加多个 EFA 网络接口,请参阅最大化网络带宽。
--network-interfaces "NetworkCardIndex=0, \
DeviceIndex=0, \
NetworkInterfaceId=eni-1234567890abcdef0
, \
Groups=sg-1234567890abcdef0
, \
SubnetId=subnet-0abcdef1234567890
"
在启动实例时附加新的 EFA
使用 run-instances 命令和 --network-interfaces
选项。对于主网络接口,使用 NetworkCardIndex=0
、DeviceIndex=0
和 InterfaceType=efa
。如果您要附加多个 EFA 网络接口,请参阅 最大化网络带宽。
--network-interfaces "NetworkCardIndex=0, \
DeviceIndex=0, \
InterfaceType=efa, \
Groups=sg-1234567890abcdef0
, \
SubnetId=subnet-0abcdef1234567890
"
- PowerShell
-
在启动实例时附加现有的 EFA
将 New-EC2Instance cmdlet 与 -NetworkInterfaces
参数结合使用。
-NetworkInterface $networkInterface
按如下方式定义网络接口。
$networkInterface = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification
$networkInterface.DeviceIndex = 0
$networkInterface.NetworkInterfaceId = "eni-1234567890abcdef0
"
$networkInterface.Groups = @("sg-1234567890abcdef0
")
$networkInterface.SubnetId = "subnet-0abcdef1234567890
"
在启动实例时附加新的 EFA
将 New-EC2Instance cmdlet 与 -NetworkInterfaces
参数结合使用。
-NetworkInterface $networkInterface
按如下方式定义网络接口。
$networkInterface = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification
$networkInterface.DeviceIndex = 0
$networkInterface.InterfaceType = "efa"
$networkInterface.Groups = @("sg-1234567890abcdef0
")
$networkInterface.SubnetId = "subnet-0abcdef1234567890
"
将 EFA 添加到启动模板
您可以创建一个启动模板,其中包含启动启用了 EFA 的实例所需的配置信息。您可以在启动模板中同时指定 EFA 和仅限 EFA 的网络接口。要创建启用了 EFA 的启动模板,请创建新的启动模板并指定支持的实例类型、启用了 EFA 的 AMI 以及启用了 EFA 的安全组。对于 NetworkInterfaces
,请指定要附加的 EFA 网络接口。对于主网络接口,使用 NetworkCardIndex=0
、DeviceIndex=0
和 InterfaceType=efa
。如果您要附加多个 EFA 网络接口,请参阅 使用多网卡最大化 Amazon EC2 实例上的网络带宽。
您可以利用启动模板通过其他 AWS 服务(如 AWS Batch 或 AWS ParallelCluster)启动启用了 EFA 的实例。
有关创建启动模板的更多信息,请参阅创建 Amazon EC2 启动模板。