AWS Nitro System(エーダブリューエス ナイトロシステム)は、Amazon Web Services(AWS)が自社のクラウドサービス向けに設計した、Amazon EC2の基盤となる専用ハードウェアと軽量ハイパーバイザの組み合わせである。ハイパーバイザとは、1台の物理サーバの上で複数の仮想マシンを動かす制御ソフトウェアのことである。従来はホストサーバ上のソフトウェアが担っていたネットワーク、ストレージ、管理、セキュリティの処理を、AWSが設計した専用のカードやチップへ移し(オフロードし)、ハイパーバイザの役割をCPUとメモリの割り当てに絞ったことが特徴である。2017年11月に提供が始まったC5インスタンスで新しいハイパーバイザが初めて採用された。AWSは、2018年初頭以降に投入されたAmazon EC2インスタンスはすべてNitro Systemを基盤としていると説明している。
概要 Amazon EC2は、利用者が必要な数の仮想マシン(インスタンス)を短時間で借りられるクラウドサービスである。Nitro Systemの導入前は、インスタンスごとにネットワークやストレージを振り分ける処理や監視・管理の処理が、ハイパーバイザとともにホストサーバのCPU上でソフトウェアとして実行されていた。
Nitro Systemはこの処理をAWS自身が設計したハードウェアへ移し、ホストサーバのCPUとメモリのほぼすべてを利用者のインスタンスに割り当てられるようにする。AWSは、部品を組み合わせる形にしたことで新しいインスタンスタイプを短い間隔で設計・提供できるようになり、仮想化の機能を専用のハードウェアとソフトウェアに分けたことで攻撃対象領域(外部から手をかけられる範囲)を小さくできると説明している。
構成 AWSは、Nitro Systemの主な構成要素として次のものを挙げている。
Nitroカード ネットワーク、ストレージ、システム全体の制御を受け持つ専用のカード群。主なものに仮想プライベートクラウド(VPC)のネットワーク用、Amazon Elastic Block Store(Amazon EBS)用、インスタンスストレージ用のカードと、全体を制御するNitroカードコントローラがある。CPUとメモリを載せた基板とは独立して入出力の仮想化を行う。 Nitroセキュリティチップ マザーボードに組み込まれたチップ。ハードウェアを信頼の基点とする起動処理を実現し、サーバのファームウェアやイメージの整合性を検証する。 Nitro Hypervisor KVMを基礎とする軽量なハイパーバイザで、CPUとメモリの割り当てを受け持つ。AWSは、機能を意図的に絞った設計であり、多くのワークロードでベアメタルサーバと区別がつかない性能が得られるとしている。 AWS Nitro Enclaves インスタンスの内部に、永続的なストレージも外部ネットワークも持たない分離された仮想マシン(エンクレーブ)を作る機能。親インスタンスとは安全なローカル通信だけで結ばれ、親インスタンスで管理者権限を持つ利用者からも内部のデータへアクセスできない。2020年10月28日に一般提供が始まった。 NitroTPM Trusted Platform Module(TPM)2.0仕様に準拠した仮想デバイス。鍵や証明書を保存し、起動時に読み込まれたソフトウェアのハッシュ値を記録することで、インスタンスの状態を外部へ証明できる。2022年5月11日に、UEFIセキュアブートとともに一般提供された。
仕組みと特徴 Nitro Systemを基盤とするインスタンスでは、ネットワークもストレージも、利用者のOSからは一般的なネットワーク装置やNVMeのストレージとして見える。
Nitro Systemにはバージョンがあり、Amazon EC2のドキュメントは2026年9月時点でNitro v2からNitro v6までを区別している。ネットワークカード1枚あたりの最大帯域はNitro v3の100ギガビット毎秒からNitro v6の400ギガビット毎秒へ拡張され、転送中の暗号化などの機能も世代ごとに加えられている。
AWSは設計をホワイトペーパー「The Security Design of the AWS Nitro System」として公開しており、その中で、Nitro Systemは設計上Amazon EC2のサーバに対する管理者アクセスを不可能にしているとしている。また、AWSの依頼を受けた英国のセキュリティ企業NCC GroupがNitro Systemの設計を評価し、2023年に、設計上これらの主張を損なう欠陥は見つからなかったとする報告書を公表している。AWSは、管理用のソフトウェアのためにホストの資源を確保せずに済む分を利用者の料金に反映できるとしている。
採用 AWSは、Nitro Systemが入出力と管理を引き受けるため、Amazon EC2ではハイパーバイザを介さずにホストのハードウェアへ直接アクセスするベアメタルインスタンスを提供できるとしている。これは仮想化されていない環境や、Intel VTのような低水準のハードウェア機能を必要とするワークロードに向けられている。ベアメタルインスタンスは2018年3月時点ではプレビュー段階であり、2019年2月にm5.metalなど5種類が追加された。ベアメタルインスタンスが可能になったことにより、利用者自身のVMwareのハイパーバイザをAWS上で動かすVMware Cloud on AWSも実現したと説明されている。
AWSは、旧世代のインスタンスタイプもNitro Systemの上で動かすことで、元の基盤ハードウェアの一般的な寿命を越えて提供を続けられるとしている。
歴史 AWSは2013年に提供を始めたC3インスタンスで、VPCのネットワーク処理を専用のハードウェアアクセラレータへ移した。Publickeyによれば、AWSはこの変更でネットワークの帯域が20%、遅延が50%改善したと説明しており、2015年のC4インスタンスではストレージの処理も同じように移された。ここまでのカードは市販のASICを組み合わせて作られていた。AWSは2015年初頭に、これらのASICを設計していたAnnapurna Labsを買収した。
2017年11月6日、AWSはC5インスタンスの提供開始を発表し、自社のハードウェアと組み合わせて動く新しいハイパーバイザを初めて採用したことを明らかにした。同月に開催されたAWS re:Invent 2017で、この基盤がNitro Systemとして公表された。クラウドWatchは2018年3月の記事で、C5インスタンスとM5インスタンスに新しいハイパーバイザが実装されており、C5インスタンスの価格性能比が前世代のC4インスタンスに比べて25%改善したとAWSが説明していると報じている。
その後、2020年10月にAWS Nitro Enclaves、2022年5月にNitroTPMが一般提供された。2022年11月のAWS re:Invent 2022では、Nitroチップの新版となるNitro v5が発表され、AWSは前の世代と比べてパケット処理能力が60%向上したと説明した。
関連項目 Amazon Elastic Compute Cloud Annapurna Labs AWS Graviton AWS Trainium AWS Inferentia Kernel-based Virtual Machine ベアメタルサーバ
脚注
外部リンク AWS Nitro System(AWS公式製品ページ・日本語) AWS Nitro System(AWS公式製品ページ・英語) The Security Design of the AWS Nitro System(AWSホワイトペーパー・英語) Instances built on the AWS Nitro System(Amazon EC2ドキュメント・英語)