Mises à jour immuables de l'environnement - AWS Elastic Beanstalk

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.

Mises à jour immuables de l'environnement

Les mises à jour de l'environnement immuables sont une alternative aux mises à jour propagées. Les mises à jour de l'environnement immuables garantissent que les modifications de configuration qui nécessitent le remplacement d'instances sont appliquées efficacement et en toute sécurité. En cas de défaillance d'une mise à jour de l'environnement immuable, le processus de restauration nécessite uniquement l'arrêt d'un groupe Auto Scaling. Un échec de mise à jour propagée, en revanche, nécessite de procéder à une mise à jour propagée supplémentaire pour restaurer les modifications.

Pour effectuer une mise à jour de l'environnement immuable, Elastic Beanstalk crée un second groupe Auto Scaling temporaire derrière l'équilibreur de charge de votre environnement pour contenir les nouvelles instances. Tout d'abord, Elastic Beanstalk lance une instance unique avec la nouvelle configuration dans le nouveau groupe. Cette instance traite le trafic en même temps que toutes les instances dans le groupe Auto Scaling d'origine qui exécutent la configuration précédente.

Lorsque la première instance passe les vérifications de l'état, Elastic Beanstalk lance des instances supplémentaires avec la nouvelle configuration, correspondant au nombre d'instances en cours d'exécution dans le groupe Auto Scaling d'origine. Lorsque toutes les nouvelles instances réussissent les vérifications de l'état, Elastic Beanstalk les transfère au groupe Auto Scaling d'origine et résilie le groupe Auto Scaling temporaire et les anciennes instances.

Note

Pendant une mise à jour d'environnement immuable, la capacité de votre environnement double pendant une brève durée lorsque les instances dans le nouveau groupe Auto Scaling commencent à traiter les demandes et avant que les instances du groupe Auto Scaling d'origine soient résiliées. Si votre environnement a de nombreuses instances, ou des instances avec un faible quota d'instances à la demande, assurez-vous d'avoir suffisamment de capacité pour effectuer une mise à jour de l'environnement immuable. Si vous êtes proche du quota, pensez à utiliser des mises à jour propagées à la place.

Les mises à jour immuables nécessitent des rapports sur l'état de santé améliorés afin d'évaluer l'intégrité de votre environnement pendant la mise à jour. Les rapports sur l'état de santé améliorés associent des vérifications de l'état standard de l'équilibreur de charge avec la surveillance de l'instance afin de garantir que les instances en cours d'exécution avec la nouvelle configuration traitent les demandes avec succès.

Vous pouvez également utiliser des mises à jour immuables pour déployer de nouvelles versions de votre application, comme une alternative aux déploiement propagés. Lorsque vous configurez Elastic Beanstalk pour utiliser des mises à jour immuables pour des déploiements d'applications, il remplace toutes les instances de votre environnement chaque fois que vous déployez une nouvelle version de votre application. Si un déploiement d'application immuable échoue, Elastic Beanstalk rétablit immédiatement les modifications en résiliant le nouveau groupe Auto Scaling. Cela peut empêcher des déploiements de flottes partiels qui peuvent se produire lorsqu'un déploiement propagé échoue après que certains lots sont déjà terminés.

Avertissement

Certaines politiques remplacent toutes les instances pendant le déploiement ou la mise à jour. Cela entraîne la perte de tous les équilibres de rafale Amazon EC2 cumulés. Une telle situation se produit dans les cas suivants :

  • Mises à jour de la plate-forme gérée avec le remplacement d'instance activé

  • Mises à jour immuables

  • Déploiements avec mises à jour immuables ou fractionnement du trafic activé

Si une mise à jour immuable échoue, les nouvelles instances téléchargent les journaux groupés vers Amazon S3 avant qu'Elastic Beanstalk ne les résilie. Elastic Beanstalk laisse les journaux d'une mise à jour immuable ayant échoué dans Amazon S3 pendant une heure avant de les supprimer, au lieu des 15 minutes standard pour les journaux groupés et de processus.

Note

Si vous utilisez des mises à jour immuables pour des déploiements de version d'application, mais pas pour la configuration, vous pouvez rencontrer une erreur si vous tentez de déployer une version de l'application qui contient des modifications de configuration qui déclencheraient normalement une mise à jour propagée (par exemple, des configurations modifiant le type d'instance). Pour éviter ce problème, modifiez la configuration dans une mise à jour séparée, ou configurez les mises à jour immuables à la fois pour les changements de configuration et pour les déploiements.

Vous ne pouvez pas effectuer une mise à jour immuable de concert avec les changements de configuration de ressource. Par exemple, vous ne pouvez pas modifier les paramètres qui ont besoin d'un remplacement d'instance tout en mettant également à jour d'autres paramètres, ni exécuter un déploiement immuable avec des fichiers de configuration qui modifient les paramètres de configuration ou les ressources supplémentaires dans votre code source. Si vous essayez de modifier les paramètres de ressource (par exemple, les paramètres d'équilibreur de charge) et de procéder simultanément à une mise à jour immuable, Elastic Beanstalk renvoie une erreur.

Si vos modifications de configuration de ressource ne dépendent pas de la modification de votre code source ou de la configuration d'instance, exécutez-les dans deux mises à jour. Si elles sont dépendantes, effectuez plutôt un déploiement bleu/vert.

Configuration de mises à jour immuables

Vous pouvez activer et configurer des mises à jour immuables dans la console Elastic Beanstalk.

Pour activer des mises à jour immuables (console)
  1. Ouvrez la console Elastic Beanstalk et, dans la liste Regions (Régions), sélectionnez votre Région AWS.

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Rolling updates and deployments (Propagation des mises à jour et déploiements), choisissez Edit (Modifier).

  5. Dans la section Mises à jour de la configuration, définissez Rolling update type (Type des mises à jour propagées) sur Immuable.

    Section des mises à jour de la configuration sur la page de modification de la configuration de la propagation des mises à jour et déploiements
  6. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

L'espace de noms aws:autoscaling:updatepolicy:rollingupdate

Vous pouvez également utiliser les options dans l'espace de noms aws:autoscaling:updatepolicy:rollingupdate pour configurer des mises à jour immuables. L'exemple suivant de fichier de configuration active les mises à jour immuables pour les changements de configuration.

Exemple .ebextensions/immutable-updates.config
option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable

L'exemple suivant active les mises à jour immuables pour les changements de configuration et les déploiements.

Exemple .ebextensions/immutable-all.config
option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable aws:elasticbeanstalk:command: DeploymentPolicy: Immutable

L'interface de ligne de commande (CLI) EB et la console Elastic Beanstalk appliquent les valeurs recommandées pour les options précédentes. Vous devez supprimer ces paramètres si vous voulez utiliser des fichiers de configuration pour configurer la même chose. Consultez Valeurs recommandées pour plus de détails.