📌 最初に押さえる4つのポイント
🛣️ たとえ話マッピング
EC2のネットワーク最適化を「高速道路システム」にたとえて整理します。
| AWS概念 | 高速道路のたとえ | 効果 |
|---|---|---|
| 従来のVM ネットワーク | 🚦信号だらけの一般道 | CPUが毎パケットを仲介→遅い |
| Enhanced Networking(SR-IOV) | 🛣️信号撤去の高速道路 | ハイパーバイザー迂回→低レイテンシ |
| ENA(Elastic Network Adapter) | 🏎️最新式スマート高速道路 | 最大100Gbps、Nitro連携 |
| Intel 82599 VF | 🚗旧型の高速道路 | 最大10Gbps、旧世代インスタンス用 |
| EFA(Elastic Fabric Adapter) | 🚄専用新幹線(超高速直通線) | HPC/ML向け超低レイテンシ通信 |
| インスタンスサイズ増加 | 🛤️車線数を2→4→8車線に拡張 | vCPU比例で帯域幅増加 |
| 「n」シリーズ(C5n, M5n等) | 🏗️車線幅を拡げた特設ハイウェイ | 同サイズで最大4倍の帯域幅 |
| Placement Group(クラスター) | 🏘️隣同士の家を直結する私道 | 低レイテンシ、単一フロー最大10Gbps |
🔧 Enhanced Networking の仕組み
SR-IOV技術によりハイパーバイザーをバイパスし、NICに直接アクセスすることで、CPUオーバーヘッドを大幅に削減します。
図1: 従来のネットワーク処理(左)vs Enhanced Networking / SR-IOV(右)の比較
SR-IOV(Single Root I/O Virtualization)とは?
SR-IOVは、1つの物理NICを複数の仮想NIC(Virtual Function = VF)に分割するハードウェア技術です。各VMがVFに直接アクセスできるため、ハイパーバイザーを経由する必要がなくなり、パケット処理のCPUオーバーヘッドが大幅に削減されます。
2つのEnhanced Networking方式
ENA(Elastic Network Adapter)
AWS独自の次世代ネットワークアダプタ。最大100Gbpsの帯域幅をサポートし、すべてのNitroベースインスタンスに標準搭載。C5、M5、R5など現世代の主力インスタンスで利用可能。
Intel 82599 VF インターフェイス
旧世代の拡張ネットワーキング。最大10Gbpsをサポート。C3、C4、D2、I2、M4(m4.16xlarge除く)、R3で使用。新規設計では基本的にENA対応インスタンスを選択すべき。
パフォーマンス比較
🚄 EFA(Elastic Fabric Adapter)
HPC・機械学習ワークロード向けの特殊ネットワークデバイス。OS バイパスでノード間の超低レイテンシ通信を実現します。
図2: EFA アーキテクチャ - OS バイパスにより、アプリケーションがカーネルを経由せずにEFAデバイスへ直接アクセス
EFA の主な特徴
OS バイパス
Libfabric APIを通じて、アプリがOS カーネルを経由せずに直接ネットワークハードウェアにアクセス。レイテンシを大幅削減。
MPI / NCCL 対応
Message Passing Interface(MPI)とNVIDIA Collective Communications Library(NCCL)に対応。既存HPCアプリをそのまま利用可能。
対応インスタンス
C5n.18xlarge、C6i、P4d、P5、Trn1、Hpc6aなどの大規模インスタンスでサポート。C7gnでは最大200Gbps。
📐 インスタンスサイジングとネットワーク帯域幅
EC2のネットワーク帯域幅はインスタンスサイズ(vCPU数)に比例して増加します。「車線を増やす」ことで同時通行量が上がるのと同じ原理です。
C5 ファミリー:サイズ別ネットワーク帯域幅
| インスタンスタイプ | vCPU | メモリ (GiB) | NW 帯域幅 | 帯域幅タイプ | たとえ |
|---|---|---|---|---|---|
| c5.large | 2 | 4 | 最大 10 Gbps | バースト | 🛣️ 2車線 |
| c5.xlarge | 4 | 8 | 最大 10 Gbps | バースト | 🛣️ 4車線 |
| c5.2xlarge | 8 | 16 | 最大 10 Gbps | バースト | 🛣️ 8車線 |
| c5.4xlarge | 16 | 32 | 最大 10 Gbps | バースト | 🛣️ 16車線 |
| c5.9xlarge | 36 | 72 | 10 Gbps | ベースライン | 🛣️ 36車線(安定) |
| c5.12xlarge | 48 | 96 | 12 Gbps | 専用帯域 | 🛣️ 48車線 |
| c5.18xlarge | 72 | 144 | 25 Gbps | 専用帯域 | 🛣️🛣️ 大規模高速 |
| c5.24xlarge / metal | 96 | 192 | 25 Gbps | 専用帯域 | 🛣️🛣️ 最大規模 |
ネットワーク I/O クレジット(バースト制)
16 vCPU以下のインスタンス(4xlarge以下)は、「最大 ○Gbps」とバースト制が適用されます。常時その帯域幅を使えるわけではなく、ネットワーク I/O クレジットの残量に依存します。
図3: ネットワーク I/O クレジットの仕組み - ベースライン以下でクレジットを蓄積し、需要増加時にバースト利用
ネットワーク最適化「n」シリーズ
C5n、M5n、R5nなどの「n」サフィックス付きインスタンスは、通常版に比べてネットワーク帯域幅が大幅に強化されています。
C5n.18xlarge
帯域幅: 100 Gbps(通常C5は最大25Gbps)。EFA対応。HPCやネットワークアプライアンス向け。vCPU: 72、メモリ: 192 GiB。
C7gn(最新世代)
帯域幅: 最大200Gbps。Graviton3Eプロセッサ搭載。従来のx86系NW最適化インスタンスの3倍のパケット処理性能。
🌐 トラフィック宛先と帯域幅の関係
EC2のネットワーク帯域幅は、トラフィックの宛先によって実際に使える量が異なります。
図4: トラフィック宛先別の帯域幅制限 - 同一リージョン内ではフル帯域幅、IGW経由は50%制限
💻 確認・設定コマンド例
Enhanced Networkingの確認方法やインスタンスの帯域幅情報の取得コマンドです。
# ENA対応確認(インスタンスのENAサポート状態) aws ec2 describe-instances \ --instance-ids i-1234567890abcdef0 \ --query "Reservations[].Instances[].EnaSupport" # インスタンスタイプ別のネットワーク帯域幅を確認 aws ec2 describe-instance-types \ --filters "Name=instance-type,Values=c5.*" \ --query "InstanceTypes[].[InstanceType, \ NetworkInfo.NetworkPerformance, \ NetworkInfo.NetworkCards[0].BaselineBandwidthInGbps]" \ --output table # EFA対応インスタンスタイプの一覧 aws ec2 describe-instance-types \ --filters "Name=network-info.efa-supported,Values=true" \ --query "InstanceTypes[].InstanceType" \ --output table # 帯域幅重み付け設定(第8世代以降) aws ec2 modify-instance-network-performance-options \ --instance-id i-1234567890abcdef0 \ --bandwidth-weighting=vpc-1
# Enhanced Networking対応インスタンス起動 AWSTemplateFormatVersion: "2010-09-09" Resources: HPCInstance: Type: AWS::EC2::Instance Properties: InstanceType: c5n.18xlarge ImageId: ami-xxxxxxxxxxxxxxxxx # ENA対応AMIを使用(Amazon Linux 2以降は標準対応) NetworkInterfaces: - DeviceIndex: 0 SubnetId: !Ref PrivateSubnet GroupSet: - !Ref SecurityGroup InterfaceType: efa # ↑ EFAを有効にするにはInterfaceTypeをefaに設定 Placement: GroupName: !Ref ClusterPlacementGroup ClusterPlacementGroup: Type: AWS::EC2::PlacementGroup Properties: Strategy: cluster
# Enhanced Networking + EFA 対応インスタンス resource "aws_placement_group" "hpc" { name = "hpc-cluster" strategy = "cluster" } resource "aws_instance" "hpc_node" { ami = "ami-xxxxxxxxxxxxxxxxx" instance_type = "c5n.18xlarge" placement_group = aws_placement_group.hpc.name network_interface { device_index = 0 network_interface_id = aws_network_interface.efa.id } } resource "aws_network_interface" "efa" { subnet_id = aws_subnet.private.id security_groups = [aws_security_group.hpc.id] # EFA有効化 interface_type = "efa" }
✅ ベストプラクティス vs アンチパターン
EC2ネットワーク性能を最大限に活用するための推奨事項と避けるべき構成。
✅ ベストプラクティス
❌ アンチパターン
🔍 トラブルシューティング
EC2ネットワーク性能に関する一般的な問題と解決方法。
Enhanced Networkingが有効か確認したい
aws ec2 describe-instances でEnaSupport=trueを確認。インスタンス内で ethtool -i eth0 を実行し、driver: ena と表示されればENA有効。
期待するネットワーク帯域幅が出ない
CloudWatch の NetworkIn/NetworkOut メトリクスを確認。ENAドライバーの bw_in_allowance_exceeded カウンタが増加していれば帯域幅制限に達しています。より大きなインスタンスサイズに変更するか、トラフィックを分散してください。
パケットロスが発生する
ENAメトリクスの linklocal_allowance_exceeded(DNS/メタデータ等の制限超過)や pps_allowance_exceeded(パケット数制限)を確認。Jumbo Frame(MTU 9001)の利用も検討してください。
EFAが有効にならない
EFA対応のインスタンスタイプか確認。セキュリティグループのインバウンドルールで自身のSGからの全トラフィックを許可する必要があります。EFAドライバーのインストールも確認してください。
🎯 試験対策ポイント(ANS-C01 / SAP-C02)
AWS認定試験で問われるEC2ネットワーク性能のポイントを整理します。
ANS-C01 頻出ポイント
Enhanced Networking = SR-IOV の関連付け。ENA vs Intel 82599 VFの違い。Placement GroupとSingle Flow 5Gbps制限。EFAの用途(HPC/ML)と対応インスタンス。IGW経由の50%帯域幅制限。
SAP-C02 頻出ポイント
ネットワーク最適化の選択肢としてのインスタンスサイジング。n系インスタンス(C5n, M5n等)の活用場面。コスト最適化とのバランス。バースト vs ベースラインの理解。
❓ よくある質問(FAQ)
📋 チートシート
📖 用語集
📚 参考文献
公式ドキュメントと関連リソースへのリンク集です。