EC2 네트워크 인터페이스 완벽 비교: ENI vs ENA vs EFA
AWS EC2의 세 가지 네트워크 인터페이스 ENI, ENA, EFA의 차이점과 사용 사례를 비교합니다. SAA-C03 시험 대비 필수 개념입니다.
관련 시험 도메인
- 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)
개념
ENA는 Enhanced 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)
개념
EFA는 HPC(고성능 컴퓨팅) 및 기계 학습 워크로드를 위한 네트워크 인터페이스입니다. 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 비교
핵심 비교표
| 특성 | ENI | ENA | EFA |
|---|---|---|---|
| 대역폭 | ~10Gbps | 최대 100Gbps | 100Gbps+ |
| 지연 시간 | 표준 | 낮음 | 초저지연 (15μs) |
| OS 바이패스 | ❌ | ❌ | ✅ |
| SR-IOV | ❌ | ✅ | ✅ |
| 지원 OS | 모든 OS | 모든 OS | Linux만 |
| 서브넷 제한 | 없음 | 없음 | 단일 서브넷 |
| 추가 비용 | 없음 | 없음 | 없음 |
선택 기준 플로우차트
시작
│
├── 일반 웹/앱 서버? ──────────────→ ENI
│
├── 고대역폭 필요? (빅데이터, 비디오)
│ │
│ └── 100Gbps 이하 ──────────→ ENA
│
└── HPC/ML 워크로드?
│
├── MPI 사용? ──────────────→ EFA
│
├── 분산 딥러닝? ───────────→ EFA
│
└── 노드 간 초저지연 필요? ──→ EFA
사용 사례별 권장
| 사용 사례 | 권장 인터페이스 | 이유 |
|---|---|---|
| 웹 서버 | ENI | 표준 성능으로 충분 |
| API 서버 | ENI/ENA | 트래픽에 따라 선택 |
| 데이터베이스 | ENA | 낮은 지연 시간 |
| 빅데이터 분석 | ENA | 고대역폭 필요 |
| 비디오 스트리밍 | ENA | 높은 처리량 |
| 날씨 시뮬레이션 | EFA | HPC 워크로드 |
| 분산 ML 훈련 | EFA | GPU 클러스터 통신 |
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
시험 출제 포인트
자주 나오는 문제 유형
-
시나리오 기반 선택
- "HPC 클러스터에 적합한 네트워크 인터페이스는?" → EFA
- "100Gbps 처리량이 필요한 빅데이터 분석은?" → ENA
-
제약 사항 관련
- "EFA는 어떤 OS에서 OS 바이패스를 지원하는가?" → Linux만
- "EFA 지원 인스턴스를 다른 서브넷으로 이동 가능한가?" → 아니오
-
비용 관련
- "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을 활성화하려면 어떻게 하나요?
대부분의 현세대 인스턴스에서는 자동으로 활성화됩니다. 구세대 인스턴스에서 활성화하려면:
- ENA 지원 AMI 사용
- 인스턴스에 ENA 드라이버 설치
aws ec2 modify-instance-attribute --ena-support실행
마무리
EC2 네트워크 인터페이스는 워크로드 특성에 맞게 선택해야 합니다:
- 일반 워크로드: ENI (기본)
- 고처리량 워크로드: ENA (Enhanced Networking)
- HPC/ML 워크로드: EFA (OS 바이패스)
시험에서는 각 인터페이스의 특징과 사용 사례를 구분하는 문제가 자주 출제되므로, 핵심 차이점을 명확히 이해해두세요.