AWS Nitro System のハードウェア革新 - 専用チップが変えた仮想化とセキュリティの常識
AWS が独自開発した Nitro System の設計思想を解説し、仮想化オーバーヘッドの排除、ハードウェアレベルのセキュリティ分離、ベアメタル性能の実現が他社にない競争優位をどう生んでいるかを分析します。
仮想化のオーバーヘッドという根本問題
クラウドコンピューティングは仮想化技術の上に成り立っています。1 台の物理サーバーを複数の仮想マシンに分割し、それぞれを独立したサーバーとして提供する仕組みです。しかし、仮想化にはオーバーヘッドが伴います。ハイパーバイザーがホスト CPU のリソースを消費し、ネットワーク I/O やストレージ I/O の処理にもソフトウェアレイヤーが介在します。このオーバーヘッドは、物理サーバーの性能の 10〜30% に達することもあります。従来のクラウドプロバイダーは、このオーバーヘッドを「仮想化の代償」として受け入れてきました。AWS も初期には Xen ハイパーバイザーを使用しており、同様のオーバーヘッドが存在していました。しかし、AWS はこの問題を根本から解決するために、ソフトウェアの最適化ではなく、専用ハードウェアの開発という道を選びました。それが Nitro System です。
Nitro System の設計 - ハードウェアへの機能オフロード
Nitro System は、従来ソフトウェア (ハイパーバイザー) が担っていた機能を、専用のハードウェアチップにオフロードする設計です。Nitro System は 3 つの主要コンポーネントで構成されています。Nitro Cards は、VPC ネットワーキング、EBS ストレージ、インスタンスストレージの I/O 処理を専用ハードウェアで実行します。従来はホスト CPU がソフトウェアで処理していたネットワークパケットの処理やストレージの暗号化が、専用チップで行われるため、ホスト CPU のリソースがほぼ 100% ゲスト (顧客のワークロード) に割り当てられます。Nitro Security Chip は、ハードウェアの信頼の起点 (Root of Trust) を提供します。サーバーの起動時にファームウェアの整合性を検証し、不正な変更を検出します。このチップにより、AWS のオペレーターであってもゲストのメモリやストレージにアクセスすることが物理的に不可能になっています。Nitro Hypervisor は、最小限の機能に絞り込まれた軽量なハイパーバイザーです。ネットワークとストレージの処理が Nitro Cards にオフロードされているため、ハイパーバイザーの役割は CPU とメモリの分離のみに限定されます。一部のインスタンスタイプ (ベアメタルインスタンス) では、ハイパーバイザーすら介在せず、物理サーバーの性能をそのまま利用できます。
セキュリティの根本的な再設計
Nitro System のセキュリティ設計は、従来のクラウドセキュリティの常識を覆すものです。従来の仮想化環境では、ハイパーバイザーがすべてのゲストのメモリとストレージにアクセスできる特権的な位置にありました。これは、ハイパーバイザーの脆弱性が全ゲストのセキュリティを脅かすことを意味します。Nitro System では、ハイパーバイザーからゲストのメモリへのアクセスパスが物理的に排除されています。Nitro Security Chip がハードウェアレベルでアクセス制御を行い、ソフトウェアの脆弱性を突いてもゲストのデータにアクセスできない設計です。この設計は、Spectre や Meltdown のような CPU の投機的実行に関する脆弱性に対しても、追加の防御層を提供します。これらの脆弱性はハイパーバイザーを経由したサイドチャネル攻撃を可能にしますが、Nitro System ではハイパーバイザーがゲストのメモリにアクセスする経路自体が存在しないため、攻撃の前提条件が成立しません。Nitro Enclaves は、この設計をさらに発展させたサービスです。EC2 インスタンス内に暗号的に隔離された処理環境を作成し、機密データの処理を親インスタンスからも隔離します。医療データ、金融データ、個人情報の処理において、ハードウェアレベルの隔離を提供する点は、他社にない独自の価値です。
Azure と GCP のアプローチとの比較
Azure は独自のハイパーバイザー (Azure Hypervisor) を使用していますが、Nitro System のようなハードウェアへの機能オフロードは限定的です。Azure は FPGA を活用したネットワーク処理の高速化 (Azure SmartNIC / AccelNet) を行っていますが、ストレージ I/O やセキュリティ機能を含む包括的なハードウェアオフロードは Nitro System ほど徹底されていません。Azure Confidential Computing は、Intel SGX や AMD SEV-SNP を活用した機密コンピューティングを提供しており、この領域では Azure が先行している面もあります。ただし、これらは汎用 CPU の機能を利用したものであり、AWS の Nitro System のような専用設計のハードウェアとは設計アプローチが異なります。GCP は Titan セキュリティチップをサーバーに搭載し、ハードウェアの信頼の起点を確保しています。また、Confidential VMs として AMD SEV を活用した機密コンピューティングを提供しています。しかし、仮想化のオーバーヘッドを専用ハードウェアで排除するという Nitro System のアプローチは、GCP には見られません。Nitro System の独自性は、セキュリティ、パフォーマンス、運用効率の 3 つを同時に改善するハードウェア設計を、自社で開発・製造している点にあります。汎用ハードウェアの上にソフトウェアで機能を実装するアプローチでは、この 3 つの同時最適化は困難です。
Nitro System がもたらした具体的な成果
Nitro System の導入により、AWS は複数の具体的な成果を実現しています。第一に、ベアメタルインスタンスの提供です。ハイパーバイザーのオーバーヘッドなしに物理サーバーの性能をそのまま利用できるインスタンスタイプは、ライセンスの制約でハイパーバイザー上での実行が難しいソフトウェアや、極限のパフォーマンスが求められるワークロードに対応します。第二に、インスタンスタイプの多様化です。Nitro System の柔軟なアーキテクチャにより、AWS は新しいインスタンスタイプを迅速に開発・提供できるようになりました。Graviton プロセッサ搭載インスタンス、GPU インスタンス、ストレージ最適化インスタンスなど、多様なワークロードに最適化されたインスタンスの開発速度が加速しています。第三に、ネットワーク性能の向上です。Nitro Cards によるネットワーク処理のオフロードにより、最大 200Gbps のネットワーク帯域幅を持つインスタンスが実現しています。ENA (Elastic Network Adapter) と EFA (Elastic Fabric Adapter) は、Nitro System のネットワーク処理能力を活用した高性能ネットワークインターフェースです。
ハードウェア自社開発の戦略的意味
Nitro System の開発は、AWS が 2015 年に買収した Annapurna Labs の技術に基づいています。クラウドプロバイダーが自社でハードウェアを設計・開発することの戦略的意味は大きく、3 つの観点から整理できます。第一に、差別化の持続性です。ソフトウェアの最適化は競合他社が模倣しやすいのに対し、専用ハードウェアの開発には数年単位の投資と専門的な技術チームが必要であり、参入障壁が高くなります。第二に、コスト構造の最適化です。汎用ハードウェアベンダーへの依存を減らし、自社のワークロードに最適化されたハードウェアを設計することで、性能あたりのコストを根本から改善できます。第三に、イノベーションの速度です。ハードウェアとソフトウェアを一体で設計できるため、新しいサービスや機能の実現が容易になります。Graviton プロセッサ、Inferentia (推論チップ)、Trainium (学習チップ) といった後続のカスタムシリコンも、Nitro System で培ったハードウェア開発能力の延長線上にあります。 クラウドのハードウェア技術を深く理解するには関連書籍 (Amazon) も参考になります。
まとめ
AWS Nitro System は、仮想化のオーバーヘッド排除、ハードウェアレベルのセキュリティ分離、インスタンスタイプの多様化という 3 つの成果を、専用ハードウェアの自社開発によって実現しています。Azure は FPGA ベースのネットワーク高速化と Confidential Computing で対抗していますが、Nitro System のような包括的なハードウェアオフロードには至っていません。GCP は Titan チップによるセキュリティ基盤を持ちますが、仮想化オーバーヘッドの排除という観点では Nitro System に及びません。クラウドプロバイダーが自社でハードウェアを設計・開発する能力は、長期的な競争優位の源泉であり、AWS の Nitro System はその最も成功した実例です。