

# Elastic Fabric Adapter를 생성하여 Amazon EC2 인스턴스에 연결
<a name="create-efa"></a>

Amazon EC2의 다른 탄력적 네트워크 인터페이스와 마찬가지로 EFA를 생성하여 Amazon EC2 인스턴스에 연결할 수 있습니다. 그러나 탄력적 네트워크 인터페이스와 달리 EFA는 `running` 상태에서 인스턴스에 연결하거나 연결 해제할 수 없습니다.

**고려 사항**
+  EFA과 연결된 보안 그룹을 변경할 수 있습니다. OS 우회 기능을 사용하기 위해 EFA는 보안 그룹 자체 내의 모든 인바운드 및 아웃바운드 트래픽을 허용하는 보안 그룹에 구성되어야 합니다. 자세한 내용은 [1단계: EFA를 사용한 보안 그룹 준비](efa-start.md#efa-start-security) 섹션을 참조하세요.

  탄력적 네트워크 인터페이스와 연결된 보안 그룹을 변경한 것과 동일한 방법을 사용하여 EFA에 연결된 보안 그룹을 변경할 수 있습니다. 자세한 내용은 [네트워크 인터페이스 속성 수정](modify-network-interface-attributes.md) 섹션을 참조하세요.
+ 탄력적 네트워크 인터페이스에 IP 주소를 할당하는 것과 동일한 방법을 사용하여 EFA(ENA 포함 EFA) 네트워크 인터페이스에 탄력적 IP(IPv4) 및 IPv6 주소를 할당할 수 있습니다. 자세한 내용은 [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>

VPC의 서브넷에 EFA를 생성할 수 있습니다. EFA는 일단 생성되고 나면 다른 서브넷으로 옮길 수 없으며 동일 가용 영역의 인스턴스에만 네트워크 인터페이스를 연결할 수 있습니다.

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

**EFA(ENA 포함 EFA 또는 ENA 전용) 네트워크 인터페이스를 생성하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **네트워크 인터페이스(Network Interfaces)**를 선택한 후 **네트워크 인터페이스 생성(Create network interface)**을 선택합니다.

1. **설명**에 EFA를 설명하는 이름을 입력합니다.

1. **서브넷**에서 EFA를 생성하려는 서브넷을 선택합니다.

1. **인터페이스 유형**에서 다음 옵션 중 하나를 선택합니다.
   + **ENA 포함 EFA** - ENA 디바이스와 EFA 디바이스를 모두 지원하는 네트워크 인터페이스를 생성합니다.
   + **EFA 전용** - EFA 디바이스로만 네트워크 인터페이스를 생성합니다.

1. (ENA 포함 EFA에만 해당) 네트워크 인터페이스에 대한 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초. 최댓값: 43만 2,000초(5일). 기본값: 43만 2,000초. 권장값: 43만 2,000초 미만.
      + **UDP 제한 시간** - 단일 방향 또는 단일 요청-응답 트랜잭션의 트래픽만 확인한 유휴 UDP 흐름에 대한 제한 기간(초)입니다. 최솟값: 30초. 최댓값: 60초. 기본값: 30초.
      + **UDP 스트림 제한 시간** - 둘 이상의 요청-응답 트랜잭션을 확인한 스트림으로 분류된 유휴 UDP 흐름에 대한 제한 기간(초)입니다. 최솟값: 60초. 최댓값: 180초(3분) 기본값: 180초

1. **보안 그룹(Security groups)**에서 하나 이상의 보안 그룹을 선택합니다.

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) cmdlet을 사용합니다. `-InterfaceType`에는 EFA 네트워크 인터페이스의 경우 `efa`, EFA 전용 네트워크 인터페이스의 경우 `efa-only`를 지정합니다.

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

------

## 중지된 인스턴스에 EFA 연결
<a name="efa-attach"></a>

`stopped` 상태에 있는 지원되는 모든 인스턴스에 EFA를 연결할 수 있습니다. `running` 상태인 인스턴스에는 EFA를 연결할 수 없습니다. 지원되는 인스턴스 유형에 대한 자세한 내용은 [지원되는 인스턴스 유형](efa.md#efa-instance-types) 섹션을 참조하세요.

네트워크 인터페이스를 인스턴스에 연결하는 방법을 사용해 EFA를 연결할 수 있습니다. 자세한 내용은 [네트워크 인터페이스 연결](network-interface-attachments.md#attach_eni) 섹션을 참조하세요.

## 인스턴스를 시작할 때 EFA 연결
<a name="efa-launch"></a>

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

**인스턴스를 시작할 때 기존 EFA를 연결하려면**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 명령을 `--network-interfaces` 옵션과 함께 사용합니다. 기본 네트워크 인터페이스에 대해 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를 연결하려면**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 명령을 `--network-interfaces` 옵션과 함께 사용합니다. 기본 네트워크 인터페이스의 경우 `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) cmdlet을 사용합니다.

```
-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) cmdlet을 사용합니다.

```
-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 서비스(예: [AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/what-is-batch.html) 또는 [AWS ParallelCluster](https://docs.aws.amazon.com/parallelcluster/latest/ug/what-is-aws-parallelcluster.html))와 함께 EFA 사용 인스턴스를 시작할 수 있습니다.

시작 템플릿 생성에 대한 자세한 내용은 [Amazon EC2 시작 템플릿 생성](create-launch-template.md) 섹션을 참조하세요.