- Authors

- Name
- Youngju Kim
- @fjvbn20031
- はじめに
- AWS Nitroシステムアーキテクチャ
- GPUインスタンスタイプ
- EC2ネットワーキング
- Elastic Graphics (Deprecated)
- オンプレミスGPU仮想化との比較
- EC2インスタンス選択ガイド
- 実践: EC2 GPUインスタンスセットアップ
- Nitroシステムの革新ポイント
はじめに
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 x1)
最も安価な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ベンチマークで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に提供
- I/Oハードウェアオフロード: ネットワーク、ストレージ、管理を専用チップで処理
- セキュリティ分離: ハードウェアレベルのRoot of Trustとメモリ分離
- ベアメタル性能: 仮想化オーバーヘッドほぼゼロ
- 一貫した性能: I/O処理がCPUと独立しているため「ノイジーネイバー」問題を最小化
- 迅速なイノベーション: ハードウェアコンポーネントを独立してアップデート可能
クイズ: AWS EC2/Nitro理解度チェック
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など)が頻繁に行われるため、ネットワーク性能が学習速度に直接影響します。