AWS ajoute la prise en charge de la virtualisation imbriquée
(github.com/aws)- Avec la mise à jour de l’AWS SDK for Go v2, une fonctionnalité permettant d’exécuter une machine virtuelle à l’intérieur d’une autre machine virtuelle a été ajoutée
- Cette nouvelle fonctionnalité permet d’exécuter des VM imbriquées même sur des instances EC2 non bare metal
- L’extension de la prise en charge de la virtualisation imbriquée sur AWS EC2 pourrait servir de base pour accroître l’utilisation des couches de virtualisation dans les environnements de développement et de test
1 commentaires
Commentaires sur Hacker News
Avant, il fallait des instances bare metal coûteuses pour faire ce genre de chose
À noter que GCP prend déjà en charge la nested virtualization depuis longtemps
Le fait de pouvoir mettre en place facilement des environnements de test ou de développement est aussi un avantage
La nested virtualization ne désigne pas forcément uniquement des VM complètes
Dans la région us-west-2, l’option « Nested Virtualization » est déjà visible, et elle est disponible sur les types d’instance M8id / C8id / R8id
C’est vraiment une très grande nouvelle pour les solutions de sandbox micro-VM comme E2B, auxquelles je contribue
Quand j’avais testé la nested virtualization auparavant, j’avais eu l’impression que ce n’était pas très utile au-delà du niveau PoC
Il existe de nombreuses solutions de conteneurs basées sur des VM, comme Kata Containers, gVisor et Firecracker
Par exemple, on peut isoler les pods Kubernetes au niveau de la VM
Cela permet aussi la migration à chaud entre instances EC2, ce qui facilite la maintenance continue des workloads
Dans les environnements CI/CD, cela devient aussi bien plus pratique, car on peut construire et tester directement des images système sur EC2
GCP, VMWare, KVM et d’autres proposaient déjà ce type de fonctionnalité, donc c’était frustrant de voir EC2 n’arriver que maintenant
C’est particulièrement utile pour des tâches comme la simulation réseau avec QEMU, où l’on émule du matériel réseau
J’utilise ce genre de chose chez moi depuis longtemps avec libvirt sur du matériel grand public classique
AWS ne fait que rattraper une fonctionnalité ancienne
J’imagine qu’il doit y avoir plusieurs couches de surcharge MMU
Les tâches purement CPU sont presque sans impact, mais les E/S peuvent être quasi inchangées ou très dégradées selon l’implémentation
Les événements comme les traps/vmexit doivent passer par une couche supplémentaire
Je ne sais pas avec certitude si l’implémentation d’AWS suit cette approche