Comment planifier le démarrage et l'arrêt de mes instances Amazon EC2 à l'aide des fenêtres de maintenance Systems Manager ?

Date de la dernière mise à jour : 02/06/2022

Je souhaite utiliser une fenêtre de maintenance AWS Systems Manager pour démarrer et arrêter mes instances gérées Amazon Elastic Compute Cloud (Amazon EC2).

Solution

Pour planifier le démarrage ou l'arrêt des instances gérées Amazon EC2 à l'aide des fenêtres de maintenance Systems Manager, enregistrez les tâches d'automatisation AWS-StartEC2Instance ou AWS-StopEC2Instance dans une fenêtre de maintenance. La fenêtre de maintenance cible les instances EC2 configurées, puis arrête ou démarre les instances à l'aide des étapes du document d'automatisation fourni dans le programme choisi.

Créer un rôle et une politique IAM

Pour planifier des actions de démarrage ou d'arrêt d'une fenêtre de maintenance, vous devez utiliser un rôle AWS Identity and Access Management (IAM) avec des autorisations ec2:StartInstances et ec2:StopInstances.

Remarque : le rôle IAM nécessite des autorisations uniquement pour la tâche d'automatisation que vous enregistrez dans la fenêtre de maintenance. Par exemple, si vous choisissez d'enregistrer AWS-StartEC2Instance et que vous choisissez de ne pas enregistrer AWS-StopEC2Instance, le rôle IAM nécessite uniquement des autorisations ec2:StartInstances.

  1. Ouvrez la console IAM, choisissez Roles (Rôles) dans le panneau de navigation, puis choisissez Create role (Créer un rôle).
    Pour Select type of trusted entity (Sélectionner le type d'entité de confiance), choisissez AWS service (Service AWS).
    Pour Choose a use case (Choisir un cas d'utilisation), sélectionnez Systems Manager.
    Pour Select your use case (Sélectionner votre cas d'utilisation), sélectionnez Systems Manager.
  2. Choisissez Next: Permissions (Suivant : Autorisations).
  3. Choisissez Create policy (Créer une stratégie). Remarque : la page Create policy (Créer une stratégie) s'ouvre dans un nouvel onglet. Vous reviendrez à l'onglet d'origine à l'étape 7.
    Pour Service, choisissez EC2.
    Pour Actions, recherchez et sélectionnez DescribeInstanceStatus ou à la fois StartInstances et StopInstances, en fonction de votre cas d'utilisation.
    Pour les Resources (Ressources), sélectionner Specific (Spécifiques), puis ajouter l'ARN de la ressource d'instance. Sélectionner des instances spécifiques vous permet de définir des autorisations uniquement pour des ressources spécifiques dans des comptes spécifiques.
    Pour les Request conditions (Conditions de demande), sélectionnez Add condition (Ajouter une condition) pour restreindre les conditions dans lesquelles les actions de démarrage et d'arrêt peuvent être utilisées. Ensuite, configurez les détails de la condition. Si aucune condition n'est requise, ne modifiez pas les Request conditions (Conditions de demande.
  4. Sélectionnez Next: Tags (Suivant : Balises). (Facultatif) Ajoutez des tags (balises).
  5. Sélectionnez Next: Review (Étape suivante : Vérification).
    Pour Name (Nom), saisissez un nom de stratégie. Par exemple, SSM_StartStopEC2Policy.
  6. Choisissez Create policy (Créer une stratégie).
  7. Retournez à la page Créer un rôle qui est toujours ouverte dans l'onglet précédent de l'étape 3. Sélectionnez Next: Tags (Suivant : Balises). (Facultatif) Ajoutez des tags (balises).
  8. Sélectionnez Next: Review (Étape suivante : Vérification).
    Pour Role name (Nom de rôle), saisissez un nom. Par exemple, SSM_StartStopEC2Role.
  9. Sélectionnez Create role (Créer un rôle).

Pour plus d'informations, consultez la section Création d'un rôle pour un service AWS (console).

Créer une fenêtre de maintenance

Si vous ne disposez pas déjà d'une fenêtre de maintenance, vous devez créer une fenêtre de maintenance. Si vous enregistrez des cibles dans la fenêtre de maintenance, n'utilisez pas l'option Specify instance tags (Spécifier les identifications d'instance) comme cible, car cette option ne permet pas de démarrer les instances. Choisissez les options Choose instances manually (Choisir les instances manuellement) ou Choose a resource group (Choisir un groupe de ressources) à la place.

Pour exécuter la fenêtre de maintenance sur des instances gérées que vous n'avez pas enregistrées en tant que cibles, vous devez sélectionner Allow unregistered targets (Autoriser les cibles non enregistrées).

Si vous disposez déjà d'une fenêtre de maintenance, passez à l'étape Register an Automation task (Enregistrer une tâche d'automatisation).

Enregistrer la tâche d'automatisation

  1. Ouvrez la console Systems Manager, puis sélectionnez Maintenance Windows (Fenêtres de maintenance) dans le volet de navigation.
  2. Sélectionnez la case d'option en regard de la fenêtre de maintenance cible, puis sélectionnez Actions, Register Automation task (Enregistrer la tâche d'automatisation).
  3. (Facultatif) Saisissez un nom et une description pour détailler les tâches de la fenêtre de maintenance.
  4. Pour Automation document (Document d'automatisation), recherchez et sélectionnez l'un des documents suivants en fonction de votre cas d'utilisation :
    AWS-StartEC2Instance
    AWS-StopEC2Instance

    Remarque : vous ne pouvez enregistrer qu'un seul document d'automatisation à la fois. Pour enregistrer les deux, vous devez répéter entièrement le processus Register the Automation task (Enregistrer la tâche d'automatisation) pour chaque document.
  5. Pour Document version (Version du document), sélectionnez Default version at runtime (Version par défaut à l'exécution).
  6. (Facultatif) La priorité de la tâche est définie sur 1 par défaut. Si d'autres tâches sont enregistrées dans la même fenêtre de maintenance, vous pouvez modifier la priorité des tâches pour déterminer leur ordre d'exécution.
  7. Pour Targets (Cibles), si vous avez enregistré des instances cibles pour la fenêtre de maintenance, sélectionnez Selecting registered target groups (Sélectionner les groupes cibles enregistrés). Si vous n'avez pas enregistré d'instances cibles pour la fenêtre de maintenance, choisissez Selecting unregistered targets (Sélectionner des cibles non enregistrées). Ensuite, sélectionnez des instances manuellement ou spécifiez un groupe de ressources pour identifier les instances pour lesquelles vous souhaitez exécuter la tâche d'automatisation.
    Remarque : n'utilisez pas de Tags (Identifications) comme option cible, car elle ne permet pas aux instances de démarrer. Utilisez plutôt la sélection manuelle ou les groupes de ressources.
  8. Pour Rate control (Contrôle du débit), spécifiez une Concurrency (Simultanéité) et un Error threshold (Seuil d'erreur).
  9. Pour le IAM service role (fonction du service IAM), sélectionnez Use the service-linked role for Systems Manager (Utiliser le rôle lié au service pour Systems Manager).
    Si vous avez déjà créé une fonction du service pour Systems Manager, sélectionnez-la dans la liste déroulante.
    Si vous n'avez pas créé de fonction du service pour Systems Manager, créez-en une.
    Remarque : n'utilisez pas la valeur AWSServiceRoleForAmazonSSM, car ce rôle n'est pas disponible pour les nouvelles tâches.
  10. Pour Input parameters (Paramètres d'entrée), spécifiez les paramètres suivants :
    InstanceId : entrez le pseudo-paramètre {{RESOURCE_ID}} pour cibler plus d'une ressource.
    AutomationAssumeRole : entrez l'ARN complet du rôle pour le rôle IAM disposant des autorisations ec2:StartInstances ou ec2:StopInstances requises. Par exemple, « arn:aws:iam::123456789101:role/SSM_StartStopEC2Role ».
  11. Sélectionnez Register Automation task (Enregistrer une tâche d'automatisation).
  12. (Facultatif) Pour enregistrer des tâches d'automatisation afin de planifier les actions d'arrêt et de démarrage, répétez les étapes de la partie Register an Automation task (Enregistrer une tâche d'automatisation) pour le deuxième document.

Pour plus d'informations, consultez la section Attribution de tâches à une fenêtre de maintenance (console).