0Pricing
AWS Solutions Architect · Leçon

Actualisation des instances et points d’ancrage du cycle de vie

Déployez progressivement un nouveau modèle de lancement avec l’actualisation des instances et utilisez des points d’ancrage du cycle de vie pour exécuter une logique personnalisée avant le lancement ou la terminaison des instances.

Actualisation des instances et points d’ancrage du cycle de vie est une leçon AWS Solutions Architect gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AWS Solutions Architect, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AWS Solutions Architect comprend 4 leçons au total.

Le problème des mises à jour progressives des instances

Lorsque vous mettez à jour un modèle de lancement (nouvelle AMI, nouvelles données utilisateur ou nouveau type d’instance), les instances existantes en cours d’exécution dans l’ASG ne sont pas automatiquement remplacées : elles continuent d’utiliser l’ancienne configuration. Pour propager les changements, vous devez remplacer les instances. La terminaison et le relancement manuels des instances sont risqués et sujets aux erreurs. Instance Refresh automatise ce processus grâce à des contrôles de sécurité configurables.

Instance Refresh : fonctionnement

Instance Refresh remplace les instances de l’ASG par lots successifs. À chaque étape, il met fin à un lot d’anciennes instances, attend que les nouvelles instances réussissent les vérifications d’état, puis passe au lot suivant. Vous contrôlez le rythme avec un MinHealthyPercentage (le pourcentage minimal de capacité qui doit rester saine pendant l’actualisation) et une durée facultative d’InstanceWarmup.

aws autoscaling start-instance-refresh \
  --auto-scaling-group-name 'MyAppASG' \
  --preferences '{
    "MinHealthyPercentage": 80,
    "InstanceWarmup": 300,
    "CheckpointPercentages": [20, 50, 100],
    "CheckpointDelay": 600
  }'

MinHealthyPercentage et taille des lots

MinHealthyPercentage définit le seuil minimal de capacité saine pendant l’actualisation. Si vous le définissez à 90 %, seulement 10 % du parc est remplacé à la fois : c’est plus lent, mais plus sûr. Une valeur de 50 % remplace la moitié du parc en une fois : c’est plus rapide, mais avec moins de redondance. L’ASG calcule automatiquement la taille des lots en fonction de ce pourcentage et de votre capacité souhaitée actuelle. Choisissez un pourcentage plus élevé pour les charges de travail de production afin de maintenir la disponibilité.

Points de contrôle pour les déploiements de type canari

Les points de contrôle vous permettent de mettre en pause Instance Refresh à des seuils de pourcentage prédéfinis. Par exemple, vous pouvez actualiser 20 % des instances, faire une pause de 10 minutes pour exécuter des tests rapides, puis continuer. Si vous détectez un problème à un point de contrôle, vous pouvez annuler l’actualisation : l’ASG cesse de remplacer d’autres instances, mais laisse fonctionner celles qui ont déjà été remplacées (elles utilisent déjà le nouveau modèle). Il s’agit en pratique d’un modèle de déploiement canari pour EC2.

Annulation et surveillance d’Instance Refresh

Vous pouvez annuler à tout moment une actualisation Instance Refresh en cours ; cela arrête les remplacements suivants, mais n’annule pas ceux qui sont terminés. Utilisez describe-instance-refreshes pour vérifier l’état, le pourcentage de progression et les éventuelles instances qui n’ont pas pu être lancées. Intégrez Instance Refresh à votre chaîne d’intégration et de déploiement continus afin de déclencher automatiquement une actualisation après l’ajout d’une nouvelle AMI au modèle de lancement, ce qui permet de réaliser un déploiement entièrement automatisé de type bleu/vert.

aws autoscaling describe-instance-refreshes \
  --auto-scaling-group-name 'MyAppASG'

# Cancel a running refresh
aws autoscaling cancel-instance-refresh \
  --auto-scaling-group-name 'MyAppASG'

Présentation des Lifecycle Hooks

Les Lifecycle Hooks mettent en pause les transitions des instances de l’ASG à des moments clés afin que vous puissiez exécuter une logique personnalisée avant qu’une instance devienne active ou avant sa terminaison. Il existe deux points d’accroche : EC2_INSTANCE_LAUNCHING (après le lancement, avant que l’instance soit placée dans InService) et EC2_INSTANCE_TERMINATING (après la décision de terminaison, avant que l’instance ne soit effectivement arrêtée). Pendant un point d’accroche, l’instance se trouve dans l’état Pending:Wait ou Terminating:Wait.

Cas d’utilisation des Lifecycle Hooks de lancement

Le point d’accroche de lancement convient parfaitement aux tâches qui doivent être terminées avant qu’une instance ne serve du trafic : installation de logiciels supplémentaires, récupération de la configuration depuis Parameter Store, enregistrement auprès d’un registre de découverte de services ou exécution de tests d’intégration. L’ASG n’ajoute pas l’instance au groupe cible de l’équilibreur de charge tant que le point d’accroche n’est pas terminé (ou n’a pas expiré). Cela empêche le trafic d’atteindre une instance dont la configuration est incomplète.

aws autoscaling put-lifecycle-hook \
  --auto-scaling-group-name 'MyAppASG' \
  --lifecycle-hook-name 'AppInit' \
  --lifecycle-transition EC2_INSTANCE_LAUNCHING \
  --default-result ABANDON \
  --heartbeat-timeout 300

Cas d’utilisation des Lifecycle Hooks de terminaison

Le point d’accroche de terminaison s’exécute avant l’arrêt effectif d’une instance. Parmi les cas d’utilisation figurent : évacuer les requêtes en cours d’une file d’attente au niveau de l’application, vider les données mises en cache vers un stockage persistant, supprimer l’instance d’un registre de services ou copier les fichiers journaux vers S3. Sans point d’accroche de terminaison, le travail en cours sur une instance en cours d’arrêt peut être perdu. Le point d’accroche vous accorde jusqu’à 2 heures (délai d’expiration du signal de maintien) pour terminer les tâches d’arrêt progressif.

aws autoscaling put-lifecycle-hook \
  --auto-scaling-group-name 'MyAppASG' \
  --lifecycle-hook-name 'GracefulShutdown' \
  --lifecycle-transition EC2_INSTANCE_TERMINATING \
  --default-result CONTINUE \
  --heartbeat-timeout 120

Finalisation d’un Lifecycle Hook

La logique personnalisée exécutée sur l’instance, ou déclenchée par celle-ci, doit signaler au point d’accroche qu’elle est terminée. Utilisez complete-lifecycle-action avec CONTINUE (poursuivre normalement) ou ABANDON (pour un point d’accroche de lancement, mettre fin à l’instance ; pour un point d’accroche de terminaison, ignorer et poursuivre). Vous pouvez également prolonger le délai d’expiration du point d’accroche en envoyant un signal de maintien à chaque intervalle, jusqu’à la durée maximale. Si le point d’accroche expire, DefaultResult est appliqué.

# From inside the instance or a Lambda triggered by EventBridge
aws autoscaling complete-lifecycle-action \
  --auto-scaling-group-name 'MyAppASG' \
  --lifecycle-hook-name 'AppInit' \
  --lifecycle-action-result CONTINUE \
  --instance-id 'i-0abc123def456'

Déclenchement de la logique avec EventBridge

La manière la plus propre de répondre aux points d’accroche du cycle de vie consiste à utiliser Amazon EventBridge. Lorsqu’un point d’accroche du cycle de vie se déclenche, l’ASG émet un événement vers EventBridge. Une règle EventBridge achemine cet événement vers une fonction Lambda, qui effectue le travail requis puis appelle complete-lifecycle-action. Cette architecture est entièrement sans serveur, ne nécessite aucune interrogation périodique et évolue automatiquement. Les notifications SQS et SNS sont des solutions plus anciennes, mais EventBridge est privilégié pour les nouvelles conceptions.

Instance Refresh s’intègre aux Lifecycle Hooks

Lorsque Instance Refresh remplace une instance, les deux points d’accroche du cycle de vie se déclenchent : le point d’accroche de terminaison sur l’ancienne instance et celui de lancement sur la nouvelle. Ainsi, votre logique d’arrêt progressif et d’initialisation s’exécute automatiquement pendant une mise à jour progressive, et pas uniquement lors des événements habituels de mise à l’échelle. Testez toujours la logique de vos points d’accroche du cycle de vie lors d’une actualisation Instance Refresh progressive avant un déploiement en production, afin de vérifier son bon fonctionnement.

Vérification rapide

Vérifiez votre compréhension des notions AWS Solutions Architect (SAA-C03) abordées dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris qu’Instance Refresh remplace les instances de l’ASG par lots successifs contrôlés par MinHealthyPercentage, avec des points de contrôle facultatifs pour une validation de type canari ; que les Lifecycle Hooks mettent en pause les transitions des instances lors du lancement ou de la terminaison afin d’exécuter une logique personnalisée d’initialisation ou d’arrêt progressif ; et qu’EventBridge + Lambda constitue le modèle recommandé pour répondre aux événements des points d’accroche du cycle de vie sans interrogation périodique. Nous allons maintenant étudier les fonctions AWS Lambda, leurs environnements d’exécution, leurs déclencheurs et leurs gestionnaires.

Questions Fréquemment Posées

La leçon « Actualisation des instances et points d’ancrage du cycle de vie » est-elle gratuite ?

Oui — le texte complet de « Actualisation des instances et points d’ancrage du cycle de vie » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AWS Solutions Architect, passe à CoddyKit PRO. Le cours AWS Solutions Architect comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Actualisation des instances et points d’ancrage du cycle de vie » ?

Déployez progressivement un nouveau modèle de lancement avec l’actualisation des instances et utilisez des points d’ancrage du cycle de vie pour exécuter une logique personnalisée avant le lancement… Tu pratiques AWS Solutions Architect avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AWS Solutions Architect ?

Aucune expérience préalable n'est requise. AWS Solutions Architect sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Actualisation des instances et points d’ancrage du cycle de vie » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AWS Solutions Architect ?

Oui. Chaque leçon AWS Solutions Architect inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Modèles de lancement et configuration ASG
  2. Stratégies de mise à l’échelle : suivi de cible et mise à l’échelle par étapes
  3. Mise à l’échelle planifiée et prédictive
  4. Actualisation des instances et points d’ancrage du cycle de vie
← Retour à AWS Solutions Architect