View a markdown version of this page

Utilisation des instantanés - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des instantanés

Lorsque AWS Lambda MicroVMS crée une image MicroVM, il capture un instantané Firecracker de votre application entièrement initialisée. Cette page décrit le contenu d'un instantané, comment gérer l'unicité des microVM partageant le même instantané et les meilleures pratiques pour les applications compatibles avec les instantanés.

Ce qu'un instantané permet de capturer

Un instantané Firecracker capture l'état suivant à partir de votre microVM au moment où la création de l'image est terminée :

  • État de la mémoire des processus en cours d'exécution  : tous les processus lancés parENTRYPOINT/CMD, y compris les démons d'arrière-plan, les tâches cron et les processus enfants.

  • État du disque  : système de fichiers racine, y compris tous les fichiers écrits pendant la phase de construction (packages installés, fichiers binaires compilés, fichiers de configuration).

  • Connexions réseau et descripteurs de fichiers  : toutes les connexions réseau, descripteurs de fichiers, canaux et autres descripteurs initialisés.

Lorsque vous exécutez une microVM, Lambda la restaure à partir de ce snapshot. Votre application reprend exactement là où la version de l'image MicroVM s'était arrêtée.

Considérations de compatibilité

Étant donné que toutes les microVM lancées à partir de la même version d'image partagent le même état initial, tenez compte des points suivants lorsque vous créez des applications avec Lambda MicroVMS :

  • Unicité  : si votre code génère un contenu unique pendant la phase de création de la version de l'image (ID uniques, secrets ou entropie pour le caractère pseudo-aléatoire), ce contenu est partagé entre toutes les microVM exécutées à partir de la même version d'image. Générez un contenu unique après le démarrage d'une nouvelle microVM, et non pendant la création de l'image. Utilisez le hook /run du cycle de vie pour réinitialiser le contenu unique généré précédemment.

  • Connexions réseau  : les connexions établies pendant la phase de création de la version de l'image peuvent devoir être rétablies lorsqu'une microVM est exécutée à partir de la version de l'image. Validez l'état de la connexion et rétablissez les connexions si nécessaire. Dans la plupart des cas, les connexions créées par AWS les SDK sont automatiquement rétablies.

Gérer l'unicité à l'aide des instantanés

Toutes les micromachines virtuelles exécutées à partir de la même image partagent le même état initial. Pour préserver l'unicité des micromachines virtuelles, procédez comme suit :

  • Générez des identifiants uniques, des secrets et des valeurs aléatoires après le démarrage d'une microVM et non lors de la création de la version de l'image. Utilisez le hook /run du cycle de vie pour réinitialiser n'importe quel état unique.

  • Utilisez des générateurs de nombres pseudo-aléatoires sécurisés sur le plan cryptographique (CSPRNG) pour votre langage de programmation. Vérifiez que votre bibliothèque cryptographique standard reçoit son entropie de l'appareil ou de l'/dev/randomappareil. /dev/urandom Il s'agit du comportement par défaut pour les bibliothèques cryptographiques des langages de programmation courants tels que Java 11+ (SecureRandom bibliothèque), Node.js (bibliothèque Crypto.RandomBytes), Python 3.12+ (bibliothèque) et Dotnet8+ (Secrets.SystemRandombibliothèque). Cryptography.RandomNumberGenerator Logiciel qui lit /dev/random ou /dev/urandom conserve le caractère aléatoire lorsqu'il est utilisé avec des instantanés d'images microVM.

  • Si le code de votre application utilise OpenSSL, utilisez l'image de conteneur de base AWS fournie public.ecr.aws/lambda/microvms:al2023-minimal à partir de pour créer votre image microVM. Cette image contient une version AWS corrigée d'OpenSSL qui est compatible avec la capture instantanée. Si vous souhaitez utiliser votre propre image de base avec OpenSSL, utilisez la version corrigée d'OpenSSL (openssl-snapsafe-libs) répertoriée dans la liste des packages Amazon Linux 2023. https://docs.aws.amazon.com/linux/al2023/release-notes/all-packages.html