[AWS] ENI 이해

[AWS] ENI 이해

ENI를 이해해보자.


1. ENI 개요

Elastic Network Interface(ENI)는 VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소이다.

여기에는 아래 속성이 포함될 수 있다.

  • VPC의 IPv4 주소 범위 중 기본 프리이빗 IPv4 주소
  • VPC의 IPv4 주소 범위 중 하나 이상의 보조 프라이빗 IPv4 주소
  • 프라이빗 IPv4 주소당 한 개의 탄력적 IP 주소(IPv4)
  • 한 개의 퍼블릭 IPv4 주소
  • 한 개 이상의 IPv6 주소
  • 하나 이상의 보안 그룹
  • MAC 주소
  • 원본/대상 확인 플래그

네트워크 인터페이스를 생성 및 구성하고 동일한 가용 영역의 인스턴스에 연결할 수 있다.
계정에는 사용자가 다른 리소스 및 서비스를 사용할 수 있도록 AWS 서비스가 생성하고 관리하는 요청자 관리 네트워크 인터페이스가 있을 수 있다.
이러한 네트워크 인터페이스는 사용자가 직접 관리할 수 없다.

ENI는 인스턴스가 AWS 서비스, 다른 인스턴스, 온프레미스 서버, 인터넷 등 다른 네트워크 리소스와 통신할 수 있도록 하며, Secure Shell(SSH) 또는 Remote Desktop Protocol(RDP) 등을 이용해서 인스턴스에서 실행중인 OS와도 통신할 수 있게 해준다.

ENI는 기본적으로 물리적 서버의 네트워크 인터페이스와 같은 기능을 제공하되, 환경 설정에 따라 통신 대상과 방법 등을 세심하게 관리할 수 있다.
모든 인스턴스는 기본 네트워크 인터페이스(기본 ENI)가 있어야 하며, 이 인터페이스는 하나의 서브넷에만 연결된다.
이는 인스턴스를 시작할 때 서브넷을 지정하도록 하는 이유이기도 하다.
기본 ENI는 인스턴스에서 제거할 수 없고, 서브넷 또한 변경할 수 없다.

이 AWS 리소스를 AWS Management Console 및 Amazon EC2 API에서는 네트워크 인터페이스라고 한다.
즉 AWS에서 탄력적 네트워크 인터페이스는 네트워크 인터페이스와 동의어이다.

2. Network interface 기본 사항

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

네트워크 인터페이스를 만들고, 인스턴스에 연결하고, 인스턴스에서 분리한 후 다른 인스턴스에 연결할 수 있다.
네트워크 인터페이스는 독립적으로 존재할 수 있으며, 네트워크 인터페이스를 먼저 생성한 뒤 인스턴스에 연결할 수 있다.
인스턴스에 연결하거나 분리한 후 다른 인스턴스에 다시 연결하면 네트워크 인터페이스의 속성이 해당 네트워크 인터페이스를 따른다.
네트워크 인터페이스를 인스턴스 간에 이동하면 네트워크 트래픽이 새 인스턴스로 리디렉션된다.

인스턴스에 부착되지 않은 기존의 네트워크 인터페이스를 가져와서 다른 인스턴스의 보조 네트워크 인터페이스로 부착할 수도 있다.
예를 들어, 장애가 있는 인스턴스에서 네트워크 인스턴스를 분리한 뒤, 정상 작동중인 인스턴스에 연결하면 트래픽을 장애 인스턴스에서 정상 인스턴스로 전환할 수 있다.

i. Primary network interface

각 인스턴스는 기본 네트워크 인터페이스라는 디폴트 네트워크 인터페이스를 갖는다.
기본 네트워크 인터페이스는 인스턴스에서 분리할 수 없다.
추가 네트워크 인터페이스를 만들고 연결할 수 있다.
사용 가능한 최대 네트워크 인터페이스 수는 인스턴스 유형에 따라 다르다.

각 인스턴스는 서브넷으로 지정한 범위 내의 기본 프라이빗 IP주소를 지녀야하며, 기본 프라이빗 IP 주소는 인스턴스의 기본 ENI와 연결된다.
이 주소는 변경 또는 삭제할 수 없지만, 기본 ENI에 보조(Secondary) 프라이빗 IP주소를 할당해서 사용할 수 있다.
당연하지만 보조 프라이빗 IP 주소 또한 부착된 서브넷 범위 내에 있어야 한다.

ii. Primary network interface용 Public IPv4 address

VPC에서 모든 서브넷은 해당 서브넷에서 생성된(따라서 인스턴스가 그 서브넷에서 시작된) 네트워크 인터페이스가 퍼블릭 IPv4 주소에 할당될 것인지 결정하는 수정 가능한 속성을 갖는다.
퍼블릭 IPv4 주소는 Amazon의 퍼블릭 IPv4 주소 풀에서 할당된다.
인스턴스를 시작하면 생성된 기본 네트워크 인터페이스에 IP 주소가 할당된다.

네트워크 인터페이스를 생성할 때 네트워크 인터페이스는 서브넷에서 퍼블릭 IPv4 주소 지정 속성을 상속받는다.
이후에 서브넷의 퍼블릭 IPv4 주소 지정 속성을 수정하더라도, 네트워크 인터페이스는 처음 생성될 때 적용된 설정을 그대로 유지한다.
인스턴스를 시작하고 기존 네트워크 인터페이스를 기본 네트워크 인터페이스로 지정하는 경우 퍼블릭 IPv4 주소 속성은 이 네트워크 인터페이스에 의해 결정된다.

iii. Network interface의 Elastic IP addresses

탄력적 IP 주소가 있는 경우 이 주소를 네트워크 인터페이스의 프라이빗 IPv4 주소 중 하나와 연결할 수 있다.
한 탄력적 IP 주소를 각 프라이빗 IPv4 주소와 연결할 수 있다.

탄력적 IP 주소를 네트워크 인터페이스에서 연결 해제하면 이 주소는 주소 풀로 반환되어 돌아간다.
네트워크 인터페이스는 서브넷에서 고유하므로 다른 서브넷이나 VPC의 인스턴스와 탄력적 IP 주소를 연결하는 방법은 이 방법뿐이다.

iv. network interfaces용 IPv6 addresses

IPv6 CIDR 블록을 VPC 및 서브넷에 연결하고 서브넷 범위에 속하는 하나 이상의 IPv6 주소를 네트워크 인터페이스에 할당할 수 있다.
각 IPv6 주소는 하나의 네트워크 인터페이스에 할당될 수 있다.

모든 서브넷은 해당 서브넷에서 생성된(따라서 인스턴스가 그 서브넷으로 시작된) 네트워크 인터페이스가 서브넷 범위에 속하는 IPv6 주소에 자동으로 할당될 것인지 결정하는 수정 가능한 속성을 갖는다.
인스턴스를 시작하면 생성된 기본 네트워크 인터페이스에 IPv6 주소가 할당된다.

v. Prefix Delegation

Prefix Delegation 접두사는 인스턴스와 연결된 네트워크 인터페이스에 자동 또는 수동으로 할당하기 위해 할당하는 예약된 프라이빗 IPv4 또는 IPv6 CIDR 범위이다.
위임된 접두사를 사용하면 IP 주소 범위를 단일 접두사로 할당하여 서비스를 더 빠르게 시작할 수 있다.

vi. 종료 동작

인스턴스에 연결된 네트워크 인터페이스의 종료 동작을 설정할 수 있다.
연결된 인스턴스를 종료할 때 네트워크 인터페이스를 자동으로 삭제할지를 지정할 수 있다.

vii. 원본/대상 확인

원본/대상 확인을 활성화 또는 비활성화할 수 있다.
이를 통해 인스턴스가 수신되는 트래픽의 원본 또는 대상인지 확인할 수 있다.
원본/대상 확인은 기본적으로 활성화된다.
인스턴스에서 네트워크 주소 변환, 라우팅 또는 방화벽과 같은 서비스를 실행하는 경우 소스/대상 확인을 비활성화해야 한다.

vii. IP 트래픽 모니터링

네트워크 인터페이스에서 VPC 흐름 로그를 활성화하여 네트워크 인터페이스로 주고 받는 IP 트래픽에 대한 정보를 캡처한다.
흐름 로그를 생성하고 난 다음 Amazon CloudWatch Logs의 데이터를 확인하고 가져올 수 있다.


3. Network cards

네트워크 카드가 여러 개인 인스턴스는 100Gbps 이상의 대역폭 기능과 향상된 패킷 속도 성능을 포함하여 더 높은 네트워크 성능을 제공한다.
각 네트워크 인터페이스는 네트워크 카드에 연결된다.
기본 네트워크 인터페이스는 네트워크 카드 인덱스 0에 할당되어야 한다.

여러 네트워크 카드를 지원하는 인스턴스를 시작할 때 Elastic Fabric Adapter(EFA)를 활성화하면 모든 네트워크 카드를 사용할 수 있다.
네트워크 카드당 최대 1개의 EFA를 할당할 수 있다.
EFA는 네트워크 인터페이스로서 네트워크 인터페이스 수 계산에 포함된다.

아래 인스턴스는 여러 네트워크 카드를 지원합니다.
다른 모든 인스턴스 유형은 하나의 네트워크 카드를 지원한다.

Instance_type_Number_of_network_cards



© 2022. All rights reserved.