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.
Remplacer les volumes racines lors de l'actualisation de l'instance
Table des matières
Comment ça marche
Le remplacement du volume racine met à jour vos instances en remplaçant uniquement le volume EBS racine tout en maintenant l'instance en cours d'exécution. Cela élimine le besoin de lancer de nouvelles instances et évite d'éventuelles contraintes de capacité. Ce processus préserve toutes les autres ressources de l'instance, notamment :
-
Interfaces réseau et adresses IP
-
Volumes EBS autres que root
-
Volumes et données de stockage d'instance
-
Groupes de sécurité et rôles IAM
Pendant le remplacement du volume racine, votre application continue de s'exécuter sur l'instance existante. Le volume racine d'origine est détaché, un nouveau volume racine est créé à partir de l'AMI que vous avez spécifiée, puis attaché à la même instance. Les volumes racine d'origine sont automatiquement supprimés après un remplacement réussi.
Lorsque vous utilisez la stratégie de remplacement du volume racine, les instances passent par les états de cycle de vie suivants :
-
ReplacingRootVolume- Le remplacement du volume racine commence -
ReplacingRootVolume:Wait- Attend la fin du cycle de vie du hook (si configuré) -
ReplacingRootVolume:Proceed- Procède du remplacement -
RootVolumeReplaced- Le remplacement a été effectué avec succès
Une fois le remplacement du volume racine terminé, Auto Scaling effectue des contrôles de santé sur les instances mises à jour. Si le remplacement du volume racine échoue pour une instance, Auto Scaling marque cette instance pour arrêt et la remplace par une nouvelle instance.
Exigences
-
Votre groupe Auto Scaling doit utiliser une politique d'instances mixtes
-
Toutes les dérogations prévues dans la politique des instances mixtes doivent spécifier un
ImageId -
AMIs ne doit contenir qu'un seul volume racine
-
Toutes les instances doivent correspondre à la configuration du modèle de lancement du groupe
-
Vous devez démarrer l'actualisation de l'instance avec la configuration souhaitée comportant une politique d'instances mixtes contenant des
ImageIdremplacements.
Lancer une actualisation d'instance avec Replace Root Volume
Pour démarrer l'actualisation d'une instance avec Replace Root Volume (AWS CLI)
Utilisez la start-instance-refresh
aws autoscaling start-instance-refresh --cli-input-json file://config.json
Contenu de config.json :
Exemple
{ "AutoScalingGroupName":"my-asg", "Strategy" :"ReplaceRootVolume", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateId":"my-launch-template", "Version":"1"}, "Overrides": [ { "InstanceType":"c5.large", "ImageId":"ami-1234example"}, { "InstanceType":"m5.large", "ImageId":"ami-2345example"} ] } } }, "Preferences": { "InstanceWarmup":60, "MinHealthyPercentage":90, "AutoRollback":true, "ScaleInProtectedInstances":Ignore, "StandbyInstances":Ignore} }
Si les préférences ne sont pas fournies, les valeurs par défaut sont utilisées. Pour de plus amples informations, veuillez consulter Comprendre les valeurs par défaut d'une actualisation d'instance.
Exemple de sortie :
{
"InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
Limitations
-
Vous ne pouvez pas démarrer une actualisation d'instance avec Replace Root Volume si le groupe EC2 Auto Scaling ou la configuration d'actualisation d'instance souhaitée utilise
$Latestla version$Defaultou le modèle de lancement. -
Vous ne pouvez pas démarrer une actualisation d'instance avec Replace Root Volume sur un groupe Amazon EC2 Auto Scaling s'il contient des instances dont le type d'instance n'est pas présent dans la politique relative aux instances mixtes.
-
Lors d'une actualisation d'instance avec Replace Root Volume, vous ne pouvez associer que des instances dont les types sont présents dans la politique d'instances mixtes de la configuration souhaitée.
-
Vous ne pouvez pas démarrer une actualisation d'instance avec Replace Root Volume sur un groupe EC2 Auto Scaling doté d'un pool de chaleur.
-
Vous ne pouvez pas ajouter un pool de chaleur à un groupe Amazon EC2 Auto Scaling dont l'instance est actualisée activement avec Replace Root Volume.
Utilisez des hooks de cycle de vie pour remplacer le volume racine
Les instances en cours de remplacement du volume racine suivent leurs propres transitions de cycle de vie, ce qui vous permet d'invoquer des actions (par exemple, une fonction Lambda) avant and/or le remplacement. Pour plus d'informations sur les états du cycle de vie lors du remplacement du volume racine, consultezTransitions d'état du cycle de vie pour les instances en cours de remplacement du volume racine.
Pour plus d'informations sur l'ajout d'un hook de cycle de vie, consultez Ajoutez des hooks de cycle de vie à votre groupe Auto Scaling. Pour plus d'informations sur l'exécution d'une action de cycle de vie, consultez Réaliser une action du cycle de vie dans un groupe Auto Scaling.
Avant le remplacement du volume racine, un hook du cycle de vie peut être utile dans les scénarios suivants :
-
Vous souhaitez arrêter correctement votre application avant que le volume racine ne soit remplacé et que l'instance ne soit redémarrée.
-
Vous souhaitez déplacer les données du volume racine vers un autre emplacement avant que le volume ne soit remplacé.
Après le remplacement du volume racine, un hook de cycle de vie peut être utile dans les scénarios suivants :
-
Vous souhaitez vérifier que votre instance est entièrement prête avec la nouvelle AMI avant qu'elle ne commence à recevoir du trafic.
-
Vous souhaitez amorcer des données d'application qui existaient auparavant sur le volume racine.
Lorsque vous ajoutez des hooks de cycle de vie, tenez compte des éléments suivants :
-
Lorsqu'un hook du cycle de vie est configuré pour l'action
autoscaling:EC2_INSTANCE_TERMINATINGdu cycle de vie, une instance sur le point de subir le remplacement du volume racine fait une pause pour effectuer une action personnalisée lorsqu'elle atteintReplacingRootVolume:Waitcet état. -
Lorsqu'un hook de cycle de vie est configuré pour l'action
autoscaling:EC2_INSTANCE_LAUNCHINGdu cycle de vie, une instance dont le volume racine vient d'être remplacé fait une pause pour exécuter une action personnalisée lorsqu'elle atteintPending:Waitcet état.
Lorsque les instances atteignent un état d'attente, Amazon EC2 Auto Scaling envoie une notification. Les notifications relatives au cycle de vie d'Auto Scaling contiennent un Action champ dont la valeur ReplaceRootVolume indique que l'instance est en cours de remplacement du volume racine.
Des exemples de ces notifications sont disponibles dans la EventBridge section de ce guide. Pour de plus amples informations, veuillez consulter Actualisation des instances : remplacement des événements du cycle de vie du volume racine.