EC2 인스턴스용 네트워크 인터페이스 만들기
EC2 인스턴스용 네트워크 인터페이스 만들기 (Create a network interface for your EC2 instance)
EC2 인스턴스에서 사용할 네트워크 인터페이스를 만들 수 있어요. 네트워크 인터페이스를 만들 때 생성할 서브넷을 지정해요. 만든 후에는 네트워크 인터페이스를 다른 서브넷으로 이동할 수 없어요.
출처: 문서
본문
네트워크 인터페이스를 같은 가용 영역의 인스턴스에 연결해야 해요. 보조 네트워크 인터페이스는 인스턴스에서 분리한 뒤 같은 가용 영역의 다른 인스턴스에 연결할 수 있어요. 기본 네트워크 인터페이스는 인스턴스에서 분리할 수 없어요.
콘솔:
- Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
- 탐색 창에서 Network Interfaces를 선택해요.
- Create network interface를 선택해요.
- (선택) Description에 설명적인 이름을 입력해요.
- Subnet에서 서브넷을 선택해요. 선택한 서브넷 유형(IPv4 전용, IPv6 전용, dual-stack(IPv4와 IPv6))에 따라 이후 단계의 옵션이 달라져요.
- Interface type에서 다음 중 하나를 선택해요.
- ENA – TCP/IP 프로토콜에 대해 높은 처리량과 초당 패킷 수를 처리하면서 CPU 사용을 최소화하도록 설계된 고성능 네트워크 인터페이스. 기본값이에요.
- EFA with ENA – 전통적인 TCP/IP 기반 전송과 SRD 기반 전송 모두에 ENA와 EFA 장치를 지원하는 네트워크 인터페이스. 연결할 인스턴스가 EFA를 지원해야 해요.
- EFA-only – 운영 체제 스택을 우회하면서 SRD 기반 전송을 위한 높은 처리량, 낮은 지연 시간의 노드 간 통신을 처리하도록 설계된 고성능 네트워크 인터페이스. 연결할 인스턴스가 EFA를 지원해야 하고, EFA 전용 네트워크 인터페이스는 IP 주소를 지원하지 않아요.
- Private IPv4 address에서 다음 중 하나를 선택해요.
- Auto-assign – Amazon EC2가 서브넷에서 IPv4 주소를 선택하게 함.
- Custom – 서브넷에서 선택한 IPv4 주소를 입력.
- (IPv6 주소가 있는 서브넷만) IPv6 address에서 None(할당 안 함), Auto-assign, 또는 Custom 중에서 선택해요.
- (선택) dual-stack 또는 IPv6 전용 서브넷에서 네트워크 인터페이스를 만든다면 Assign Primary IPv6 IP를 활성화할 수 있어요. 이렇게 하면 네트워크 인터페이스에 기본 IPv6 글로벌 유니캐스트 주소(GUA)가 할당돼요. 기본 IPv6 주소를 할당하면 인스턴스나 ENI의 트래픽이 중단되는 것을 피할 수 있어요. 이 ENI가 연결될 인스턴스가 IPv6 주소가 변경되지 않는 것에 의존한다면 Enable을 선택해요. 기본 IPv6으로 활성화한 IPv6 GUA는 이후 비활성화할 수 없어요. 첫 IPv6 GUA가 인스턴스가 종료되거나 네트워크 인터페이스가 분리될 때까지 기본 IPv6 주소가 돼요.
- (선택) Elastic Fabric Adapter를 만들려면 Elastic Fabric Adapter, Enable을 선택해요.
- (선택) Advanced settings에서 IP 접두사 위임(prefix delegation)을 설정할 수 있어요.
- Auto-assign – AWS가 서브넷의 IPv4 또는 IPv6 CIDR 블록에서 접두사를 선택해 네트워크 인터페이스에 할당.
- Custom – 서브넷의 IPv4 또는 IPv6 CIDR 블록에서 접두사를 직접 지정하고, AWS가 다른 리소스에 이미 할당되지 않았는지 확인한 뒤 할당.
- (선택) 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초.
- TCP established timeout – established 상태의 유휴 TCP 연결에 대한 타임아웃(초). 최소
- Security groups에서 하나 이상의 보안 그룹을 선택해요.
- (선택) 각 태그에 Add new tag를 선택하고 태그 키와 선택적 태그 값을 입력해요.
- 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