Skip to content

필사 모드: [가상화] 05. AWS EC2와 Nitro 시스템: 클라우드 가상화의 진화

한국어
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

들어가며

AWS EC2(Elastic Compute Cloud)는 세계 최대의 클라우드 가상화 플랫폼입니다. 그 핵심에는 AWS가 자체 개발한 Nitro 시스템이 있습니다. Nitro는 전통적인 하이퍼바이저의 한계를 극복하고, I/O 처리를 전용 하드웨어로 오프로드하여 거의 모든 호스트 리소스를 인스턴스에 제공합니다.

AWS Nitro 시스템 아키텍처

전통적 가상화 vs Nitro

[전통적 가상화] [AWS Nitro]

+------------------+ +------------------+

| VM 1 | VM 2 | | VM 1 | VM 2 |

+------------------+ +------------------+

| Hypervisor | | Nitro Hypervisor |

| - CPU/Mem 관리 | | (경량, CPU/Mem만) |

| - 네트워크 처리 | +------------------+

| - 스토리지 처리 | | Nitro Cards |

| - 보안/관리 | | (전용 HW가 처리) |

+------------------+ +--+--+--+---------+

| Hardware | |NIC|EBS|Mgmt|Security

+------------------+ +--+--+--+---------+

| Hardware |

호스트 CPU의 30%를 +------------------+

하이퍼바이저가 소비 호스트 CPU 거의 100%를

인스턴스에 제공

Nitro 시스템 구성요소

+----------------------------------------------------------+

| AWS Nitro System |

+----------------------------------------------------------+

| |

| +------------------+ +------------------------------+ |

| | Nitro Hypervisor | | Nitro Cards | |

| | - 경량 KVM 기반 | | +--------+ +--------+ | |

| | - CPU/메모리 | | | VPC | | EBS | | |

| | 격리만 담당 | | | Card | | Card | | |

| +------------------+ | +--------+ +--------+ | |

| | +--------+ +--------+ | |

| +------------------+ | | NVMe | | Mgmt | | |

| | Nitro Security | | | Card | | Card | | |

| | Chip | | +--------+ +--------+ | |

| | - HW Root of Trust| +------------------------------+ |

| | - 펌웨어 보호 | |

| +------------------+ +------------------------------+ |

| | Nitro Enclaves | |

| | - 격리된 컴퓨팅 환경 | |

| | - 민감 데이터 처리 | |

| +------------------------------+ |

+----------------------------------------------------------+

1. Nitro Hypervisor

- **경량 KVM 기반**: CPU와 메모리 격리만 담당

- 네트워크, 스토리지, 관리 기능은 모두 Nitro Cards로 오프로드

- 호스트 CPU/메모리의 거의 100%를 인스턴스에 제공

- 소프트웨어 공격면(attack surface) 최소화

2. Nitro Cards

전용 ASIC으로 제작된 하드웨어 카드입니다.

| Nitro Card | 역할 |

| --------------- | ---------------------------------------- |

| VPC Card | 가상 네트워크 처리 (VPC, SG, NACL, EFA) |

| EBS Card | EBS 볼륨 I/O 처리, 암호화, NVMe 프로토콜 |

| Local NVMe Card | 인스턴스 스토어 NVMe SSD 관리 |

| Management Card | 인스턴스 모니터링, 부팅, 보안 관리 |

3. Nitro Security Chip

[Nitro Security Chain]

서버 부팅

|

v

Nitro Security Chip (HW Root of Trust)

|

v 펌웨어 무결성 검증

|

Nitro Hypervisor 로드

|

v 하이퍼바이저 무결성 검증

|

EC2 인스턴스 시작

|

v 런타임 모니터링 (지속)

- 하드웨어 기반 신뢰 루트(Root of Trust)

- 서버 펌웨어의 무결성을 부팅 시마다 검증

- AWS 직원조차 인스턴스 메모리에 접근 불가

- NitroTPM으로 인스턴스 수준 TPM 2.0 제공

4. Nitro Enclaves

격리된 컴퓨팅 환경으로, 민감한 데이터를 처리합니다.

+-------------------------------------+

| EC2 Instance |

| +-------------+ +-------------+ |

| | Application | | Nitro | |

| | (일반 처리) | | Enclave | |

| | | | (격리 환경) | |

| | | | - 자체 커널 | |

| | | | - 네트워크X | |

| | | | - 스토리지X | |

| | | | - vsock 통신 | |

| +-------------+ +-------------+ |

+-------------------------------------+

- 부모 인스턴스에서도 Enclave 메모리 접근 불가

- 네트워크, 스토리지 접근 없음 (vsock으로만 통신)

- 암호화 증명(Attestation)으로 무결성 검증

- 용도: 암호화 키 관리, 금융 데이터, 의료 정보 처리

GPU 인스턴스 타입

P-시리즈 (Training/HPC)

| 인스턴스 | GPU | GPU 수 | GPU 메모리 | vCPU | 메모리 | 네트워크 |

| ------------- | -------- | ------ | ------------- | ---- | ------ | ---------------- |

| p5.48xlarge | H100 | 8 | 640GB HBM3 | 192 | 2TB | 3,200 Gbps EFA |

| p5e.48xlarge | H200 | 8 | 1,128GB HBM3e | 192 | 2TB | 3,200 Gbps EFA |

| p5en.48xlarge | H200 | 8 | 1,128GB HBM3e | 192 | 2TB | 3,200 Gbps EFAv2 |

| p4d.24xlarge | A100 | 8 | 320GB HBM2e | 96 | 1.1TB | 400 Gbps EFA |

| p4de.24xlarge | A100 80G | 8 | 640GB HBM2e | 96 | 1.1TB | 400 Gbps EFA |

G-시리즈 (Inference/Graphics)

| 인스턴스 | GPU | GPU 수 | GPU 메모리 | vCPU | 메모리 | 네트워크 |

| --------------- | ---- | ------ | ---------- | ----- | -------- | ------------- |

| g6.xlarge~48xl | L4 | 1~8 | 24~192GB | 4~192 | 16~768GB | 최대 100 Gbps |

| g6e.xlarge~48xl | L40S | 1~8 | 48~384GB | 4~192 | 16~768GB | 최대 100 Gbps |

| g5.xlarge~48xl | A10G | 1~8 | 24~192GB | 4~192 | 16~768GB | 최대 100 Gbps |

GPU 프로비저닝 방식

AWS는 Nitro 시스템을 통해 GPU를 패스스루 모드로 제공합니다.

[AWS GPU Passthrough via Nitro]

+------------------+

| EC2 Instance |

| (GPU Driver) |

+------------------+

| Nitro Hypervisor|

| (CPU/Mem 격리) |

+------------------+

| Nitro VPC Card | Nitro EBS Card | Nitro Mgmt Card

+------------------+------------------+-----------------+

| Physical Server |

| CPU | RAM | GPU (Direct Passthrough) | NVMe |

+-------------------------------------------------------+

- GPU는 인스턴스에 직접 할당 (vGPU 아님)

- 베어메탈과 동등한 GPU 성능

- CUDA, cuDNN, NCCL 등 네이티브 GPU 스택 전체 사용 가능

- MIG는 사용자가 인스턴스 내에서 직접 설정 가능 (A100/H100)

EC2 네트워킹

EFA (Elastic Fabric Adapter)

[EFA 아키텍처]

+----------+ +----------+ +----------+ +----------+

| Instance | | Instance | | Instance | | Instance |

| GPU x8 | | GPU x8 | | GPU x8 | | GPU x8 |

+----+-----+ +----+-----+ +----+-----+ +----+-----+

| | | |

+----+--------------+--------------+--------------+----+

| EFA Network (RDMA-like) |

| (OS bypass, low-latency, high-bandwidth) |

+------------------------------------------------------+

| 기능 | 설명 |

| -------------------- | --------------------------------- |

| OS Bypass | 커널을 우회한 직접 NIC 접근 |

| 대역폭 | P5: 3,200 Gbps, P4d: 400 Gbps |

| NCCL 지원 | GPU 간 직접 통신 (All-reduce 등) |

| GDR (GPUDirect RDMA) | GPU 메모리에서 직접 네트워크 전송 |

| SRD 프로토콜 | Scalable Reliable Datagram |

[GPUDirect RDMA 경로]

일반 경로: GPU -> CPU Memory -> NIC -> Network

GPUDirect RDMA: GPU -> NIC -> Network (CPU 바이패스)

Placement Groups

GPU 클러스터의 네트워크 성능을 최적화합니다.

[Cluster Placement Group]

+---------------------------------------------------+

| Same AZ, Same Rack (or Adjacent Racks) |

| |

| +--------+ +--------+ +--------+ +--------+ |

| | p5.48xl| | p5.48xl| | p5.48xl| | p5.48xl| |

| | 8xH100 | | 8xH100 | | 8xH100 | | 8xH100 | |

| +--------+ +--------+ +--------+ +--------+ |

| |

| --> 최소 네트워크 지연, 최대 대역폭 |

| --> 대규모 분산 학습에 필수 |

+---------------------------------------------------+

| Placement Group 유형 | 설명 | 용도 |

| -------------------- | ------------------- | ------------------ |

| Cluster | 같은 AZ에 밀집 배치 | 분산 GPU 학습, HPC |

| Spread | 서로 다른 랙에 분산 | 고가용성 |

| Partition | 파티션별 별도 랙 | 대규모 분산 시스템 |

Elastic Graphics (Deprecated)

Elastic Graphics는 EC2 인스턴스에 원격 GPU를 네트워크로 연결하던 서비스였습니다.

- 2024년에 공식 사용 중단(deprecated)

- 제한된 OpenGL 지원만 가능했음

- 대안: G-시리즈 인스턴스 또는 NICE DCV 프로토콜 사용

온프레미스 GPU 가상화와의 비교

| 항목 | AWS EC2 (Nitro) | 온프레미스 (ESXi/KVM) |

| ------------- | ------------------------------- | ------------------------------- |

| GPU 할당 방식 | 패스스루 (Nitro) | 패스스루, vGPU, MIG 선택 |

| GPU 공유 | 인스턴스 단위 독점 | vGPU로 다중 VM 공유 가능 |

| 네트워크 | EFA (최대 3,200 Gbps) | InfiniBand (최대 400 Gbps/포트) |

| GPU 종류 변경 | 인스턴스 타입 변경으로 즉시 | 물리적 GPU 교체 필요 |

| 확장성 | 수백 GPU를 분 단위로 프로비저닝 | 주~월 단위 조달 |

| 비용 모델 | 사용한 만큼 (초 단위) | CAPEX + 유지보수 |

| MIG 지원 | 사용자가 인스턴스 내 직접 설정 | 하이퍼바이저 레벨에서 관리 |

| 멀티 테넌시 | 인스턴스 간 Nitro HW 격리 | vGPU/MIG로 논리적 격리 |

EC2 인스턴스 선택 가이드

[GPU 인스턴스 선택 플로우차트]

용도가 무엇인가요?

|

+-- AI/ML 학습 --> 모델 크기는?

| |

| +-- 대규모 LLM --> P5 (H100/H200)

| | 8 GPU, EFA 3200Gbps

| |

| +-- 중간 규모 --> P4d (A100)

| 8 GPU, EFA 400Gbps

|

+-- 추론(Inference) --> 처리량은?

| |

| +-- 높은 처리량 --> G6e (L40S)

| | 최대 8 GPU

| |

| +-- 비용 효율 --> G6 (L4)

| 최대 8 GPU

|

+-- 그래픽/렌더링 --> G5 (A10G)

| 3D 렌더링, 비디오 처리

|

+-- 개발/프로토타입 --> G6.xlarge (L4 1개)

가장 저렴한 GPU 옵션

실습: EC2 GPU 인스턴스 설정

AWS CLI로 GPU 인스턴스 시작

aws ec2 run-instances \

--instance-type p4d.24xlarge \

--image-id ami-0abcdef1234567890 \

--key-name my-key \

--security-group-ids sg-12345678 \

--subnet-id subnet-12345678 \

--placement "GroupName=my-gpu-cluster,Tenancy=default" \

--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=gpu-training}]'

EFA 네트워크 인터페이스 추가

aws ec2 create-network-interface \

--subnet-id subnet-12345678 \

--interface-type efa \

--groups sg-12345678

GPU 상태 확인 (인스턴스 내)

nvidia-smi

MIG 활성화 (A100/H100 인스턴스에서)

sudo nvidia-smi -i 0 --mig 1

재부팅 후

sudo nvidia-smi mig -cgi 9,9 -C

NCCL 테스트 (멀티 노드)

all_reduce_perf를 사용한 GPU 간 통신 벤치마크

mpirun -np 16 --hostfile hosts \

-x NCCL_DEBUG=INFO \

-x FI_PROVIDER=efa \

-x FI_EFA_USE_DEVICE_RDMA=1 \

all_reduce_perf -b 8 -e 1G -f 2 -g 8

Nitro 시스템의 혁신 포인트

[혁신의 핵심: I/O 오프로딩]

Before Nitro:

Host CPU: [==VM==][==VM==][===Hypervisor I/O===]

~30% 소비

After Nitro:

Host CPU: [========VM========][========VM========]

Nitro HW: [Net][EBS][NVMe][Mgmt][Security]

~100% VM에 제공

1. **I/O 하드웨어 오프로드**: 네트워크, 스토리지, 관리를 전용 칩으로 처리

2. **보안 격리**: 하드웨어 수준의 신뢰 루트와 메모리 격리

3. **베어메탈 성능**: 가상화 오버헤드 거의 제로

4. **일관된 성능**: I/O 처리가 CPU와 독립적이므로 "노이지 네이버" 문제 최소화

5. **빠른 혁신**: 하드웨어 구성요소를 독립적으로 업데이트 가능

**Q1.** Nitro 시스템이 전통적인 하이퍼바이저 대비 갖는 핵심 장점은?

네트워크, 스토리지, 관리 기능을 전용 Nitro Cards(ASIC)로 오프로드하여 호스트 CPU/메모리의 거의 100%를 인스턴스에 제공합니다. 전통적 하이퍼바이저는 이런 기능을 소프트웨어로 처리하여 호스트 리소스의 약 30%를 소비합니다.

**Q2.** AWS EC2에서 GPU를 할당하는 방식은?

패스스루 방식입니다. Nitro 시스템을 통해 물리 GPU를 인스턴스에 직접 할당하므로 베어메탈과 동등한 성능을 제공합니다. vGPU 방식의 공유는 사용하지 않습니다.

**Q3.** EFA(Elastic Fabric Adapter)가 일반 네트워크와 다른 점은?

EFA는 OS 바이패스를 통해 커널을 우회하고 NIC에 직접 접근합니다. RDMA와 유사한 저지연, 고대역폭 통신을 제공하며, GPUDirect RDMA로 GPU 메모리에서 직접 네트워크 전송이 가능합니다.

**Q4.** Nitro Enclaves의 보안 모델은?

부모 인스턴스에서도 Enclave의 메모리에 접근할 수 없습니다. 네트워크와 스토리지 접근이 없으며 오직 vsock을 통해서만 통신합니다. 암호화 증명(Attestation)으로 Enclave의 무결성을 검증할 수 있습니다.

**Q5.** Cluster Placement Group이 분산 GPU 학습에 중요한 이유는?

같은 AZ의 인접한 랙에 인스턴스를 밀집 배치하여 네트워크 지연을 최소화하고 대역폭을 최대화합니다. 분산 학습에서 GPU 간 통신(All-reduce 등)이 빈번하므로 네트워크 성능이 학습 속도에 직접적인 영향을 줍니다.

현재 단락 (1/235)

AWS EC2(Elastic Compute Cloud)는 세계 최대의 클라우드 가상화 플랫폼입니다. 그 핵심에는 AWS가 자체 개발한 Nitro 시스템이 있습니다. Nitro는 전...

작성 글자: 0원문 글자: 7,505작성 단락: 0/235