AWS SDK for Go v2 のアップデートにより、仮想マシン内でさらに別の 仮想マシンを実行できる機能 が追加された 新機能により、非ベアメタルの EC2 インスタンスでもネストした VM の実行 が可能になった AWS EC2 における ネスト仮想化対応の拡張 は、開発・テスト環境での 仮想化レイヤー活用度 を高める基盤になる見込み
1件のコメント
Hacker Newsのコメント
以前はこれをやるには高価な ベアメタルインスタンス が必要だった
ちなみにGCPはかなり前から nested virtualization をサポートしていた
テストや開発環境を簡単に用意できる点も利点だ
nested virtualization は必ずしも完全なVMだけを意味しない
us-west-2 リージョンではすでに「Nested Virtualization」オプションが見えており、M8id / C8id / R8id インスタンスタイプで利用できる
私が関わっている E2B のような micro-VM サンドボックスソリューションにとっては本当に大きなニュースだ
以前 nested virtualization を試したときは、PoC レベル以外ではあまり役に立たないと感じた
Kata Containers、gVisor、Firecracker のようなVMベースのコンテナソリューションは多い
たとえば Kubernetes の pod をVM単位で分離できる
また、EC2 インスタンス間の ライブマイグレーション が可能になり、継続的なワークロードの保守がしやすくなる
CI/CD 環境でもシステムイメージを EC2 上で直接ビルドしてテストできるようになり、はるかに便利だ
GCP、VMWare、KVM などはすでにこうした機能を提供していたので、EC2 がようやく追いついたのは惜しかった
QEMU でネットワークハードウェアをエミュレートする ネットワークシミュレーション のような作業に特に有用だ
私は自宅でもずっと前から libvirt で一般向けハードウェア上でこれを使っていた
AWS がようやくこうした古い機能に追いついたわけだ
多段の MMU オーバーヘッド が発生しそうだ
純粋なCPU処理はほとんど影響がないが、IOは実装次第で ほとんど差がないか、非常に悪くなる可能性がある
trap/vmexit のようなイベントは一段階多く経由する必要がある
AWS の実装がこの方式に従っているかは確信がない