

# Elastic Fabric Adapter を作成して Amazon EC2 インスタンスにアタッチする
<a name="create-efa"></a>

Amazon EC2 の他の Elastic Network Interface と同様に、EFA を作成して Amazon EC2 インスタンスにアタッチすることができます。ただし、Elastic Network Interface とは異なり、`running` 状態のインスタンスに対して EFA をアタッチまたはデタッチすることはできません。

**考慮事項**
+  EFA に関連付けられているセキュリティグループは変更することができます。OS バイパス機能を有効にするにはEFA が、セキュリティグループ自体との間のインバウンドおよびアウトバウンドのトラフィックをすべて許可するセキュリティグループのメンバーである必要があります。詳細については「[ステップ 1: EFA 対応のセキュリティグループを準備する](efa-start.md#efa-start-security)」を参照してください。

  Elastic Network Interface に関連付けられているセキュリティグループを変更するのと同じ方法で、EFA に関連付けられているセキュリティグループを変更します。詳細については「[ネットワークインターフェイス属性の変更](modify-network-interface-attributes.md)」を参照してください。
+ IP アドレスを Elastic Network Interface に割り当てるのと同じ方法で、Elastic IP (IPv4) および IPv6 アドレスを EFA (EFA と ENA の組み合わせ) ネットワークインターフェイスに割り当てます。詳細については「[IP アドレスの管理](managing-network-interface-ip-addresses.md)」を参照してください。

  EFA のみのネットワークインターフェイスに IP アドレスを割り当てることはできません。

**Topics**
+ [

## EFA の作成
](#efa-create)
+ [

## 停止したインスタンスへの EFA のアタッチ
](#efa-attach)
+ [

## インスタンス起動時の EFA のアタッチ
](#efa-launch)
+ [

## 起動テンプレートへの EFA 追加
](#efa-launch-template)

## EFA の作成
<a name="efa-create"></a>

EFA はVPC のサブネットに作成することができます。作成後に EFA を別のサブネットに移動することはできません。また、アタッチできるのは同じアベイラビリティーゾーンの停止したインスタンスに限ります。

------
#### [ Console ]

**EFA (EFA と ENA の組み合わせまたは ENA のみ) ネットワークインターフェイスを作成する方法**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで [**ネットワークインターフェース**] 選択し、それから[**ネットワークインターフェイス**]を選択します。

1. [**説明**] に、EFA の分かりやすい名前を入力してください。

1. [**サブネット**] で、EFA を作成するサブネットを選択してください。

1. **[インターフェイスタイプ]** で、次のオプションのいずれかを選択します。
   + **[EFA と ENA の組み合わせ]** – ENA デバイスおよび EFA デバイスの両方をサポートするネットワークインターフェイスを作成します。
   + **[EFA のみ]** – EFA デバイスのみを使用してネットワークインターフェイスを作成します。

1. (EFA と ENA の組み合わせのみ) ネットワークインターフェイスの IP アドレスおよびプレフィックスの割り当てを設定します。割り当てることができる IP アドレスおよびプレフィックスのタイプは、選択したサブネットによって異なります。IPv4 のみのサブネットの場合、IPv4 IP アドレスおよびプレフィックスのみを割り当てることができます。IPv6 のみのサブネットの場合、IPv6 IP アドレスおよびプレフィックスのみを割り当てることができます。デュアルスタックサブネットの場合、IPv4 および IPv6 の両方の IP アドレス、ならびにプレフィックスを割り当てることができます。
**注記**  
EFA のみのネットワークインターフェイスに IP アドレスを割り当てることはできません。

   1. **[プライベート IPv4 アドレス]** や **[IPv6 アドレス]** の場合、**[自動割り当て]** を選択し、Amazon EC2 が選択したサブネットから IP アドレスを自動的に割り当てるようにするか、**[カスタム]** を選択して割り当てる IP アドレスを手動で指定します。

   1. IPv6 アドレスを割り当てる場合、必要に応じて **[プライマリ IPv6 IP の割り当て]** を有効にできます。これにより、プライマリ IPv6 グローバルユニキャストアドレス (GUA) がネットワークインターフェイスに割り当てられます。プライマリ IPv6 アドレスを割り当てると、インスタンスまたは ENI へのトラフィックの中断を回避できます。詳細については、「[IPv6 アドレス](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#vpc-ipv6-addresses)」を参照してください。

   1. **[IPv4 プレフィックス委任]** や **[IPv6 プレフィックス委任]** の場合、**[自動割り当て]** を選択し、Amazon EC2 がサブネットの CIDR ブロックからプレフィックスを自動的に割り当てるようにするか、**[カスタム]** を選択してサブネットの CIDR ブロックからプレフィックスを手動で指定します。プレフィックスを指定した場合、AWS は別のリソースにまだ割り当てられていないことを確認します。詳細については「[Amazon EC2 ネットワークインターフェイスのプレフィックス委任](ec2-prefix-eni.md)」を参照してください。

   1. (オプション) **アイドル接続の追跡タイムアウト**設定を構成します。詳細については「[アイドル接続追跡タイムアウト](security-group-connection-tracking.md#connection-tracking-timeouts)」を参照してください。
      + **[TCP 確立タイムアウト]** – 確立された状態のアイドル TCP 接続のタイムアウト時間 (秒単位)。最小: 60 秒。最大: 432000 秒 (5 日間)。デフォルト: 432000 秒。推奨: 432000 秒未満。
      + **[UDP タイムアウト]** – 1 つの方向または 1 つのリクエストレスポンストランザクションのみでトラフィックが発生した、アイドル UDP フローのタイムアウト時間 (秒単位)。最小: 30 秒。最大: 60 秒。デフォルト: 30 秒。
      + **[UDP ストリームタイムアウト]** – 複数のリクエストレスポンストランザクションが発生したストリームとして分類される、アイドル UDP フローのタイムアウト時間 (秒単位)。最小: 60 秒。最大: 180 秒 (3 分)。デフォルト: 180 秒。

1. [**Security groups**] で、1 つまたは複数のセキュリティグループを選択してください。

1. [**ネットワークインターフェイスの作成**] をクリックしてください。

------
#### [ AWS CLI ]

**EFA を作成するには**  
[create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) コマンドを使用します。`--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](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) コマンドレットを使用します。`-InterfaceType` では EFA ネットワークインターフェイス用の `efa` または EFA のみのネットワークインターフェイス用の `efa-only` を指定します。

```
New-EC2NetworkInterface `
    -SubnetId subnet-0abcdef1234567890 `
    -InterfaceType efa `
    -Description "my efa"
```

------

## 停止したインスタンスへの EFA のアタッチ
<a name="efa-attach"></a>

EFA はサポート対象の `stopped` 状態のインスタンスにアタッチすることができます。`running` 状態のインスタンスに EFA をアタッチすることはできません。サポートされるインスタンスタイプの詳細については[サポートされるインスタンスタイプ](efa.md#efa-instance-types)を参照してください。

ネットワークインターフェイスをインスタンスにアタッチするのと同じ方法で、EFA をインスタンスにアタッチできます。詳細については[ネットワークインターフェイスのアタッチ](network-interface-attachments.md#attach_eni)を参照してください。

## インスタンス起動時の EFA のアタッチ
<a name="efa-launch"></a>

------
#### [ AWS CLI ]

**インスタンス起動時に既存の EFA をアタッチするには**  
`--network-interfaces` オプションで [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用します。プライマリネットワークインターフェイスにはEFA ネットワークインターフェイス、`NetworkCardIndex=0`、`DeviceIndex=0` を指定します。複数の EFA ネットワークインターフェイスをアタッチするには、「[ネットワーク帯域幅の最大化](efa-acc-inst-types.md)」を参照してください。

```
--network-interfaces "NetworkCardIndex=0, \
    DeviceIndex=0, \
    NetworkInterfaceId=eni-1234567890abcdef0, \
    Groups=sg-1234567890abcdef0, \
    SubnetId=subnet-0abcdef1234567890"
```

**インスタンス起動時に新しい EFA をアタッチするには**  
`--network-interfaces` オプションで [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用します。プライマリネットワークインターフェイスには`NetworkCardIndex=0`、`DeviceIndex=0`、`InterfaceType=efa` を使用します。複数の EFA ネットワークインターフェイスをアタッチする場合は「[ネットワーク帯域幅の最大化](efa-acc-inst-types.md)」を参照してください。

```
--network-interfaces "NetworkCardIndex=0, \
    DeviceIndex=0, \
    InterfaceType=efa, \
    Groups=sg-1234567890abcdef0, \
    SubnetId=subnet-0abcdef1234567890"
```

------
#### [ PowerShell ]

**インスタンス起動時に既存の EFA をアタッチするには**  
`-NetworkInterfaces` パラメータで [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドレットを使用します。

```
-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 をアタッチするには**  
`-NetworkInterfaces` パラメータで [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドレットを使用します。

```
-NetworkInterface $networkInterface
```

ネットワークインターフェイスを次のように定義します。

```
$networkInterface = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification
$networkInterface.DeviceIndex = 0
$networkInterface.InterfaceType = "efa"
$networkInterface.Groups = @("sg-1234567890abcdef0")
$networkInterface.SubnetId = "subnet-0abcdef1234567890"
```

------

## 起動テンプレートへの EFA 追加
<a name="efa-launch-template"></a>

EFA 対応のインスタンスの起動に必要な設定情報を含む起動テンプレートを作成できます。起動テンプレートではEFA と EFA のみのネットワークインターフェイスの両方を指定できます。EFA 対応の起動テンプレートを作成するには新しい起動テンプレートを作成し、サポート対象のインスタンスタイプ、EFA 対応の AMI、および EFA 対応のセキュリティグループを指定します。`NetworkInterfaces` にはアタッチする EFA ネットワークインターフェイスを指定します。プライマリネットワークインターフェイスには`NetworkCardIndex=0`、`DeviceIndex=0`、`InterfaceType=efa` を使用します。複数の EFA ネットワークインターフェイスをアタッチする場合は「[複数のネットワークカードを使用して Amazon EC2 インスタンスのネットワーク帯域幅を最大化する](efa-acc-inst-types.md)」を参照してください。

起動テンプレートを利用すると、[AWS](https://docs.aws.amazon.com/batch/latest/userguide/what-is-batch.html) や [AWS Batch](https://docs.aws.amazon.com/parallelcluster/latest/ug/what-is-aws-parallelcluster.html) など他の AWS ParallelCluster サービスで EFA 対応のインスタンスを起動できます。

起動テンプレートの作成の詳細については[Amazon EC2 起動テンプレートを作成する](create-launch-template.md)を参照してください。