AWS fügt Unterstützung für Nested Virtualization hinzu
(github.com/aws)- Mit dem Update des AWS SDK for Go v2 wurde eine Funktion hinzugefügt, mit der sich eine weitere virtuelle Maschine innerhalb einer virtuellen Maschine ausführen lässt
- Die neue Funktion ermöglicht die Ausführung verschachtelter VMs auch auf Nicht-Bare-Metal-EC2-Instanzen
- Die erweiterte Unterstützung für Nested Virtualization in AWS EC2 dürfte eine Grundlage dafür schaffen, die Nutzung von Virtualisierungsebenen in Entwicklungs- und Testumgebungen zu erhöhen
1 Kommentare
Hacker-News-Kommentare
Früher brauchte man dafür teure Bare-Metal-Instanzen
Zur Einordnung: GCP unterstützt Nested Virtualization schon seit langer Zeit
Ein weiterer Vorteil ist, dass sich Test- oder Entwicklungsumgebungen damit einfach aufsetzen lassen
Nested Virtualization bedeutet nicht zwangsläufig nur vollständige VMs
In der Region us-west-2 sieht man bereits die Option „Nested Virtualization“, und sie ist für die Instanztypen M8id / C8id / R8id verfügbar
Für Micro-VM-Sandbox-Lösungen wie E2B, an denen ich mitarbeite, sind das wirklich große Neuigkeiten
Als ich früher Nested Virtualization ausprobiert habe, hatte ich den Eindruck, dass es außerhalb von PoCs nicht besonders nützlich ist
Es gibt viele VM-basierte Container-Lösungen wie Kata Containers, gVisor und Firecracker
Zum Beispiel kann man in Kubernetes Pods auf VM-Ebene isolieren
Außerdem werden Live-Migrationen zwischen EC2-Instanzen möglich, was die Wartung laufender Workloads erleichtert
Auch in CI/CD-Umgebungen ist es viel praktischer, System-Images direkt auf EC2 zu bauen und zu testen
GCP, VMWare und KVM boten solche Funktionen bereits, daher war es schade, dass EC2 erst jetzt nachzieht
Besonders nützlich ist das für Arbeiten wie Netzwerksimulationen, bei denen mit QEMU Netzwerkhardware emuliert wird
Ich nutze so etwas zu Hause schon seit Langem mit libvirt auf normaler Consumer-Hardware
AWS holt bei dieser alten Funktion also erst jetzt auf
Es scheint, als müsste es mehrere Schichten von MMU-Overhead geben
Reine CPU-Arbeit ist fast nicht betroffen, aber IO kann je nach Implementierung fast unverändert oder sehr schlecht ausfallen
Ereignisse wie Trap/VM-Exit müssen eine zusätzliche Ebene durchlaufen
Ich bin mir nicht sicher, ob die AWS-Implementierung diesem Ansatz folgt