EC2 인스턴스용 네트워크 인터페이스 만들기

EC2 인스턴스용 네트워크 인터페이스 만들기 (Create a network interface for your EC2 instance)

EC2 인스턴스에서 사용할 네트워크 인터페이스를 만들 수 있어요. 네트워크 인터페이스를 만들 때 생성할 서브넷을 지정해요. 만든 후에는 네트워크 인터페이스를 다른 서브넷으로 이동할 수 없어요.

출처: 문서

본문

네트워크 인터페이스를 같은 가용 영역의 인스턴스에 연결해야 해요. 보조 네트워크 인터페이스는 인스턴스에서 분리한 뒤 같은 가용 영역의 다른 인스턴스에 연결할 수 있어요. 기본 네트워크 인터페이스는 인스턴스에서 분리할 수 없어요.

콘솔:

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 탐색 창에서 Network Interfaces를 선택해요.
  3. Create network interface를 선택해요.
  4. (선택) Description에 설명적인 이름을 입력해요.
  5. Subnet에서 서브넷을 선택해요. 선택한 서브넷 유형(IPv4 전용, IPv6 전용, dual-stack(IPv4와 IPv6))에 따라 이후 단계의 옵션이 달라져요.
  6. Interface type에서 다음 중 하나를 선택해요.
    • ENA – TCP/IP 프로토콜에 대해 높은 처리량과 초당 패킷 수를 처리하면서 CPU 사용을 최소화하도록 설계된 고성능 네트워크 인터페이스. 기본값이에요.
    • EFA with ENA – 전통적인 TCP/IP 기반 전송과 SRD 기반 전송 모두에 ENA와 EFA 장치를 지원하는 네트워크 인터페이스. 연결할 인스턴스가 EFA를 지원해야 해요.
    • EFA-only – 운영 체제 스택을 우회하면서 SRD 기반 전송을 위한 높은 처리량, 낮은 지연 시간의 노드 간 통신을 처리하도록 설계된 고성능 네트워크 인터페이스. 연결할 인스턴스가 EFA를 지원해야 하고, EFA 전용 네트워크 인터페이스는 IP 주소를 지원하지 않아요.
  7. Private IPv4 address에서 다음 중 하나를 선택해요.
    • Auto-assign – Amazon EC2가 서브넷에서 IPv4 주소를 선택하게 함.
    • Custom – 서브넷에서 선택한 IPv4 주소를 입력.
  8. (IPv6 주소가 있는 서브넷만) IPv6 address에서 None(할당 안 함), Auto-assign, 또는 Custom 중에서 선택해요.
  9. (선택) dual-stack 또는 IPv6 전용 서브넷에서 네트워크 인터페이스를 만든다면 Assign Primary IPv6 IP를 활성화할 수 있어요. 이렇게 하면 네트워크 인터페이스에 기본 IPv6 글로벌 유니캐스트 주소(GUA)가 할당돼요. 기본 IPv6 주소를 할당하면 인스턴스나 ENI의 트래픽이 중단되는 것을 피할 수 있어요. 이 ENI가 연결될 인스턴스가 IPv6 주소가 변경되지 않는 것에 의존한다면 Enable을 선택해요. 기본 IPv6으로 활성화한 IPv6 GUA는 이후 비활성화할 수 없어요. 첫 IPv6 GUA가 인스턴스가 종료되거나 네트워크 인터페이스가 분리될 때까지 기본 IPv6 주소가 돼요.
  10. (선택) Elastic Fabric Adapter를 만들려면 Elastic Fabric Adapter, Enable을 선택해요.
  11. (선택) Advanced settings에서 IP 접두사 위임(prefix delegation)을 설정할 수 있어요.
    • Auto-assign – AWS가 서브넷의 IPv4 또는 IPv6 CIDR 블록에서 접두사를 선택해 네트워크 인터페이스에 할당.
    • Custom – 서브넷의 IPv4 또는 IPv6 CIDR 블록에서 접두사를 직접 지정하고, AWS가 다른 리소스에 이미 할당되지 않았는지 확인한 뒤 할당.
  12. (선택) Advanced settings의 Idle connection tracking timeout에서 기본 유휴 연결 타임아웃을 수정할 수 있어요.
    • TCP established timeout – established 상태의 유휴 TCP 연결에 대한 타임아웃(초). 최소 60초, 최대 432000초, 기본값은 Nitro v6 인스턴스 유형(P6e-GB200 제외)에서 350초, 그 외 모든 인스턴스 유형(P6e-GB200 포함)에서 432000초. 권장은 432000초 미만.
    • UDP timeout – 한 방향으로만 트래픽을 보거나 단일 요청-응답 트랜잭션이 있는 유휴 UDP 플로우의 타임아웃(초). 최소 30초, 최대 60초, 기본 30초.
    • UDP stream timeout – 둘 이상의 요청-응답 트랜잭션을 본 스트림으로 분류된 유휴 UDP 플로우의 타임아웃(초). 최소 60초, 최대 180초, 기본 180초.
  13. Security groups에서 하나 이상의 보안 그룹을 선택해요.
  14. (선택) 각 태그에 Add new tag를 선택하고 태그 키와 선택적 태그 값을 입력해요.
  15. Create network interface를 선택해요.

AWS CLI — create-network-interface 명령을 사용해요.

예제 1(Amazon EC2가 IP 주소 선택):

aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --description "my dual-stack network interface" \
    --ipv6-address-count 1 \
    --groups sg-1234567890abcdef0

예제 2(특정 IP 주소 지정):

aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --description "my dual-stack network interface" \
    --private-ip-address 10.251.50.12 \
    --ipv6-addresses 2001:db8::1234:5678:1.2.3.4 \
    --groups sg-1234567890abcdef0

예제 3(보조 IP 주소 수 지정):

aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --description "my network interface" \
    --secondary-private-ip-address-count 2 \
    --groups sg-1234567890abcdef0

예제 4(특정 보조 IP 주소 지정):

aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --description "my network interface" \
    --private-ip-addresses PrivateIpAddress=10.0.1.30,Primary=true \
                           PrivateIpAddress=10.0.1.31,Primary=false
    --groups sg-1234567890abcdef0

PowerShell — New-EC2NetworkInterface cmdlet을 사용해요. (예제 1~3은 CLI와 동일한 파라미터를 -Group으로 사용하고, 예제 4는 -PrivateIpAddresses @($primary, $secondary)로 기본·보조 주소를 정의해요.)

New-EC2NetworkInterface `
    -SubnetId subnet-0abcdef1234567890 `
    -Description "my dual-stack network interface" `
    -Ipv6AddresCount 1 `
    -Group sg-1234567890abcdef0

IP 주소 지정:

$ipv6addr = New-Object Amazon.EC2.Model.InstanceIpv6Address
$ipv6addr1.Ipv6Address = "2001:db8::1234:5678:1.2.3.4"
New-EC2NetworkInterface `
    -SubnetId subnet-0abcdef1234567890 `
    -Description "my network interface" `
    -PrivateIpAddresses @($primary, $secondary) `
    -Group sg-1234567890abcdef0

$primary = New-Object Amazon.EC2.Model.PrivateIpAddressSpecification
$primary.PrivateIpAddress = "10.0.1.30"
$primary.Primary = $true
$secondary = New-Object Amazon.EC2.Model.PrivateIpAddressSpecification
$secondary.PrivateIpAddress = "10.0.1.31"
$secondary.Primary = $false

더 알아보기