SAABlog
컴퓨팅중급

EC2 네트워크 인터페이스 완벽 비교: ENI vs ENA vs EFA

AWS EC2의 세 가지 네트워크 인터페이스 ENI, ENA, EFA의 차이점과 사용 사례를 비교합니다. SAA-C03 시험 대비 필수 개념입니다.

PHILOLAMB-
EC2ENIENAEFA네트워크Enhanced Networking

관련 시험 도메인

  • Design High-Performing Architectures

핵심 요약

ENI는 기본 가상 네트워크 카드(~10Gbps), ENA는 향상된 네트워킹(최대 100Gbps), EFA는 HPC/ML용 초고속 인터페이스(OS 바이패스 지원)입니다. 시험에서는 각 인터페이스의 사용 사례와 성능 차이가 자주 출제됩니다.

시험 팁

시험 빈출: "고성능 컴퓨팅(HPC) 워크로드를 위한 네트워크 인터페이스는?" → EFA. "EC2에서 100Gbps 네트워크가 필요하면?" → ENA 지원 인스턴스 선택.


1. ENI (Elastic Network Interface)

개념

ENI는 VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소입니다. 모든 EC2 인스턴스는 최소 하나의 ENI(기본 네트워크 인터페이스)를 가집니다.

주요 특징

특성설명
대역폭최대 ~10Gbps (인스턴스 유형에 따라 다름)
지원 범위모든 EC2 인스턴스
이동성동일 AZ 내 인스턴스 간 분리/연결 가능
다중 연결인스턴스당 여러 ENI 연결 가능

ENI 속성

ENI에 포함되는 속성들:

  • 프라이빗 IPv4 주소 (기본 + 보조)
  • 퍼블릭 IPv4 주소 (선택)
  • Elastic IP 주소
  • IPv6 주소
  • 보안 그룹 (1개 이상)
  • MAC 주소
  • 소스/대상 확인 플래그

사용 사례

┌─────────────────────────────────────────────────────────┐
│                    ENI 활용 시나리오                      │
├─────────────────────────────────────────────────────────┤
│  1. 관리 네트워크 분리                                    │
│     - ENI-1: 퍼블릭 트래픽 (웹)                          │
│     - ENI-2: 프라이빗 트래픽 (관리/모니터링)               │
│                                                         │
│  2. 장애 조치 (Failover)                                 │
│     - 장애 시 ENI를 대기 인스턴스로 이동                   │
│     - IP 주소 유지하면서 빠른 복구                        │
│                                                         │
│  3. 라이선스 관리                                        │
│     - MAC 주소 기반 라이선스                             │
│     - ENI 이동으로 라이선스 유지                          │
└─────────────────────────────────────────────────────────┘

2. ENA (Elastic Network Adapter)

개념

ENAEnhanced Networking을 제공하는 차세대 네트워크 인터페이스입니다. SR-IOV(Single Root I/O Virtualization) 기술을 사용하여 높은 처리량과 낮은 지연 시간을 제공합니다.

SR-IOV란?

┌─────────────────────────────────────────────────────────┐
│              일반 가상화 vs SR-IOV                        │
├───────────────────────┬─────────────────────────────────┤
│     일반 가상화        │           SR-IOV               │
├───────────────────────┼─────────────────────────────────┤
│  VM → Hypervisor →    │     VM → 물리 NIC              │
│  물리 NIC              │     (직접 접근)                 │
│                       │                                 │
│  [오버헤드 있음]        │     [오버헤드 최소화]            │
│  CPU 사용량 높음       │     CPU 사용량 낮음              │
│  지연 시간 있음        │     지연 시간 최소화              │
└───────────────────────┴─────────────────────────────────┘

주요 특징

특성설명
대역폭최대 100Gbps
지원 범위대부분의 현세대 인스턴스
지연 시간일관되게 낮은 지연 시간
PPS높은 초당 패킷 처리량

ENA 지원 확인

# Linux에서 ENA 드라이버 확인
modinfo ena

# ENA 지원 인스턴스인지 확인
aws ec2 describe-instances --instance-ids i-1234567890abcdef0 \
  --query "Reservations[].Instances[].EnaSupport"

사용 사례

  • 빅데이터 분석: 대용량 데이터 전송
  • 비디오 처리: 고대역폭 스트리밍
  • 분산 컴퓨팅: 노드 간 빠른 통신
  • 데이터베이스 클러스터: 낮은 지연 시간 필요

시험 팁

시험 포인트: ENA는 추가 비용 없이 지원되는 인스턴스에서 사용 가능. 별도 활성화 필요 없이 자동으로 적용됩니다.


3. EFA (Elastic Fabric Adapter)

개념

EFAHPC(고성능 컴퓨팅)기계 학습 워크로드를 위한 네트워크 인터페이스입니다. ENA의 모든 기능에 OS 바이패스 기능이 추가되었습니다.

OS 바이패스란?

┌─────────────────────────────────────────────────────────┐
│                    OS 바이패스 개념                       │
├───────────────────────┬─────────────────────────────────┤
│     일반 네트워킹      │        OS 바이패스              │
├───────────────────────┼─────────────────────────────────┤
│  Application          │     Application                 │
│      ↓                │         ↓                       │
│  OS Kernel            │     [바이패스]                   │
│      ↓                │         ↓                       │
│  Network Driver       │     Network Hardware            │
│      ↓                │                                 │
│  Network Hardware     │     → 지연 시간 대폭 감소        │
└───────────────────────┴─────────────────────────────────┘

주요 특징

특성설명
대역폭100Gbps 이상
지연 시간15μs 이하 일관된 지연
OS 바이패스지원 (Linux만)
프로토콜SRD (Scalable Reliable Datagram)

제약 사항

제약설명
OS 지원Linux만 (Windows 미지원)
서브넷단일 서브넷 내에서만 통신
연결 시점인스턴스 시작 시 또는 중지 상태에서만 추가 가능
인스턴스 유형특정 인스턴스만 지원 (p4d, c5n, m5n 등)

사용 사례

┌─────────────────────────────────────────────────────────┐
│                   EFA 주요 사용 사례                      │
├─────────────────────────────────────────────────────────┤
│  🔬 고성능 컴퓨팅 (HPC)                                  │
│     - 전산 유체 역학 (CFD)                               │
│     - 날씨/기후 시뮬레이션                               │
│     - 분자 동역학 시뮬레이션                             │
│                                                         │
│  🤖 기계 학습                                           │
│     - 분산 딥러닝 훈련                                   │
│     - 대규모 모델 학습 (GPU 클러스터)                     │
│                                                         │
│  📊 MPI 기반 애플리케이션                                │
│     - 밀접하게 결합된 병렬 처리                          │
│     - 노드 간 고속 통신 필요                             │
└─────────────────────────────────────────────────────────┘

4. ENI vs ENA vs EFA 비교

핵심 비교표

특성ENIENAEFA
대역폭~10Gbps최대 100Gbps100Gbps+
지연 시간표준낮음초저지연 (15μs)
OS 바이패스
SR-IOV
지원 OS모든 OS모든 OSLinux만
서브넷 제한없음없음단일 서브넷
추가 비용없음없음없음

선택 기준 플로우차트

시작
  │
  ├── 일반 웹/앱 서버? ──────────────→ ENI
  │
  ├── 고대역폭 필요? (빅데이터, 비디오)
  │       │
  │       └── 100Gbps 이하 ──────────→ ENA
  │
  └── HPC/ML 워크로드?
          │
          ├── MPI 사용? ──────────────→ EFA
          │
          ├── 분산 딥러닝? ───────────→ EFA
          │
          └── 노드 간 초저지연 필요? ──→ EFA

사용 사례별 권장

사용 사례권장 인터페이스이유
웹 서버ENI표준 성능으로 충분
API 서버ENI/ENA트래픽에 따라 선택
데이터베이스ENA낮은 지연 시간
빅데이터 분석ENA고대역폭 필요
비디오 스트리밍ENA높은 처리량
날씨 시뮬레이션EFAHPC 워크로드
분산 ML 훈련EFAGPU 클러스터 통신

5. 실습: ENA 지원 확인

AWS CLI로 확인

# 인스턴스의 ENA 지원 여부 확인
aws ec2 describe-instances \
  --instance-ids i-0123456789abcdef0 \
  --query 'Reservations[*].Instances[*].EnaSupport'

# AMI의 ENA 지원 여부 확인
aws ec2 describe-images \
  --image-ids ami-0123456789abcdef0 \
  --query 'Images[*].EnaSupport'

인스턴스 내부에서 확인

# ENA 드라이버 로드 확인 (Linux)
ethtool -i eth0 | grep driver

# 출력 예시
# driver: ena

시험 출제 포인트

자주 나오는 문제 유형

  1. 시나리오 기반 선택

    • "HPC 클러스터에 적합한 네트워크 인터페이스는?" → EFA
    • "100Gbps 처리량이 필요한 빅데이터 분석은?" → ENA
  2. 제약 사항 관련

    • "EFA는 어떤 OS에서 OS 바이패스를 지원하는가?" → Linux만
    • "EFA 지원 인스턴스를 다른 서브넷으로 이동 가능한가?" → 아니오
  3. 비용 관련

    • "ENA 사용 시 추가 비용은?" → 없음 (지원 인스턴스에서 무료)

시험 팁

핵심 암기:

  • ENI = 기본 (모든 인스턴스)
  • ENA = Enhanced (SR-IOV, 100Gbps)
  • EFA = Extreme (OS 바이패스, HPC/ML)

FAQ

Q1: ENA와 EFA는 추가 비용이 있나요?

아니요. 두 인터페이스 모두 추가 비용 없이 지원되는 인스턴스에서 사용할 수 있습니다. 단, EFA 지원 인스턴스는 일반적으로 고사양이므로 인스턴스 비용 자체가 높을 수 있습니다.

Q2: 하나의 인스턴스에 ENI와 EFA를 동시에 사용할 수 있나요?

예. EFA는 ENI의 기능을 포함하므로, EFA 인터페이스를 연결하면 일반 TCP/IP 통신과 OS 바이패스 통신 모두 가능합니다.

Q3: Windows에서 EFA를 사용할 수 있나요?

EFA의 TCP/IP 기능은 Windows에서도 사용 가능하지만, OS 바이패스 기능은 Linux에서만 지원됩니다. HPC 워크로드의 핵심 이점인 OS 바이패스가 필요하다면 Linux를 사용해야 합니다.

Q4: Enhanced Networking을 활성화하려면 어떻게 하나요?

대부분의 현세대 인스턴스에서는 자동으로 활성화됩니다. 구세대 인스턴스에서 활성화하려면:

  1. ENA 지원 AMI 사용
  2. 인스턴스에 ENA 드라이버 설치
  3. aws ec2 modify-instance-attribute --ena-support 실행

마무리

EC2 네트워크 인터페이스는 워크로드 특성에 맞게 선택해야 합니다:

  • 일반 워크로드: ENI (기본)
  • 고처리량 워크로드: ENA (Enhanced Networking)
  • HPC/ML 워크로드: EFA (OS 바이패스)

시험에서는 각 인터페이스의 특징과 사용 사례를 구분하는 문제가 자주 출제되므로, 핵심 차이점을 명확히 이해해두세요.