Utiliser les documents SSM de Systems Manager avec FIS AWS - AWS Service d'injection de défauts

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.

Utiliser les documents SSM de Systems Manager avec FIS AWS

AWS FIS prend en charge les types de pannes personnalisés par le biais de l'agent AWS Systems Manager SSM et de l'action AWS FIS. aws:ssm:send-command Les documents SSM préconfigurés de Systems Manager (documents SSM) qui peuvent être utilisés pour créer des actions d'injection de défauts courantes sont disponibles sous forme de AWS documents publics commençant par le AWSFIS préfixe -.

L'agent SSM est un logiciel Amazon qui peut être installé et configuré sur des EC2 instances Amazon, des serveurs sur site ou des machines virtuelles ()VMs. Cela permet à Systems Manager de gérer ces ressources. L'agent traite les demandes provenant de Systems Manager, puis les exécute comme indiqué dans la demande. Vous pouvez inclure votre propre document SSM pour injecter des erreurs personnalisées, ou faire référence à l'un des documents publics appartenant à Amazon.

Prérequis

Pour les actions qui nécessitent que l'agent SSM exécute l'action sur la cible, vous devez vous assurer que les points suivants sont respectés :

Utilisez la commande aws:ssm:send-command action

Un document SSM définit les actions exécutées par Systems Manager sur vos instances gérées. Systems Manager inclut un certain nombre de documents préconfigurés, mais vous pouvez également créer les vôtres. Pour plus d'informations sur la création de votre propre document SSM, consultez la section Creating Systems Manager dans le guide de l'AWS Systems Manager utilisateur. Pour plus d'informations sur les documents SSM en général, consultez les AWS Systems Manager documents du Guide de l'AWS Systems Manager utilisateur.

AWS FIS fournit des documents SSM préconfigurés. Vous pouvez consulter les documents SSM préconfigurés sous Documents dans la AWS Systems Manager console : https://console.aws.amazon.com/systems-manager/ documents. Vous pouvez également choisir parmi une sélection de documents préconfigurés dans la console AWS FIS. Pour de plus amples informations, veuillez consulter Documents AWS FIS SSM préconfigurés.

Pour utiliser un document SSM dans vos expériences AWS FIS, vous pouvez utiliser l'aws:ssm:send-commandaction. Cette action récupère et exécute le document SSM spécifié sur vos instances cibles.

Lorsque vous utilisez l'aws:ssm:send-commandaction dans votre modèle de test, vous devez spécifier des paramètres supplémentaires pour l'action, notamment les suivants :

  • documentArn : obligatoire. Le nom de ressource Amazon (ARN) du document SSM.

  • documentParameters— Conditionnel. Les paramètres obligatoires et facultatifs acceptés par le document SSM. Le format est un objet JSON dont les clés sont des chaînes et les valeurs sont des chaînes ou des tableaux de chaînes.

  • documentVersion : facultatif. Version du document SSM à exécuter.

Vous pouvez consulter les informations d'un document SSM (y compris les paramètres du document) à l'aide de la console Systems Manager ou de la ligne de commande.

Pour afficher les informations relatives à un document SSM à l'aide de la console
  1. Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le panneau de navigation, cliquez sur Documents.

  3. Sélectionnez le document, puis cliquez sur l'onglet Détails.

Pour afficher les informations relatives à un document SSM à l'aide de la ligne de commande

Utilisez la commande SSM describe-document.

Documents AWS FIS SSM préconfigurés

Vous pouvez utiliser des documents AWS FIS SSM préconfigurés avec l'aws:ssm:send-commandaction dans vos modèles d'expérience.

Prérequis
  • Les documents SSM préconfigurés fournis par AWS FIS ne sont pris en charge que sur les systèmes d'exploitation suivants :

    • Amazon Linux 2023, Amazon Linux 2, Amazon Linux

    • Ubuntu

    • RHEL 8, 9

    • CentOS 8, 9

  • Les documents SSM préconfigurés fournis par AWS FIS ne sont pris en charge que sur les instances. EC2 Ils ne sont pas pris en charge sur les autres types de nœuds gérés, tels que les serveurs sur site.

Pour utiliser ces documents SSM dans des expériences sur des tâches ECS, utilisez le document correspondantActions Amazon ECS. Par exemple, l'aws:ecs:task-cpu-stressaction utilise le AWSFIS-Run-CPU-Stress document.

Différence entre la durée de l'action et DurationSeconds dans les AWS documents FIS SSM

Certains documents SSM limitent leur propre temps d'exécution, par exemple le DurationSeconds paramètre est utilisé par certains documents AWS FIS SSM préconfigurés. Par conséquent, vous devez spécifier deux durées indépendantes dans la définition de l'action AWS FIS :

  • Action duration: Pour les expériences comportant une seule action, la durée de l'action est équivalente à la durée de l'expérience. Dans le cas de plusieurs actions, la durée de l'expérience dépend de la durée des actions individuelles et de l'ordre dans lequel elles sont exécutées. AWS Le FIS surveille chaque action jusqu'à ce que sa durée soit écoulée.

  • Paramètre du document DurationSeconds : durée, spécifiée en secondes, pendant laquelle le document SSM sera exécuté.

Vous pouvez choisir différentes valeurs pour les deux types de durée :

  • Action duration exceeds DurationSeconds: L'exécution du document SSM se termine avant que l'action ne soit terminée. AWS Le FIS attend que la durée de l'action soit écoulée avant que les actions suivantes ne soient lancées.

  • Action duration is shorter than DurationSeconds: Le document SSM continue l'exécution une fois l'action terminée. Si l'exécution du document SSM est toujours en cours et que la durée de l'action est expirée, le statut de l'action est défini sur Terminé. AWS Le FIS surveille uniquement l'exécution jusqu'à ce que la durée de l'action soit écoulée.

Notez que certains documents SSM ont des durées variables. Par exemple, les documents AWS FIS SSM ont la possibilité d'installer des prérequis, ce qui peut prolonger la durée d'exécution globale au-delà du paramètre spécifié. DurationSeconds Ainsi, si vous définissez la durée de l'action sur la même valeur, il est possible que le script SSM s'exécute plus longtemps que la durée de l'action. DurationSeconds

AWSFIS-Run-CPU-Stress

Exécute le stress du processeur sur une instance à l'aide de l'stress-ngoutil. Utilise le document AWSFIS-RunSSM -CPU-Stress.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-CPU-Stress

ARN

arn:aws:ssm:region::document/AWSFIS-Run-CPU-Stress

Paramètres du document
  • DurationSeconds : obligatoire. Durée du test de stress du processeur, en secondes.

  • CPU : facultatif. Le nombre de facteurs de stress du processeur à utiliser. La valeur par défaut est 0, qui utilise tous les facteurs de stress du processeur.

  • LoadPercent : facultatif. Pourcentage de charge du processeur cible, compris entre 0 (aucune charge) et 100 (pleine charge). La valeur par défaut est 100.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. L’argument par défaut est True. La dépendance eststress-ng.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Disk-Fill

Alloue de l'espace disque sur le volume racine d'une instance afin de simuler une panne complète du disque. Utilise le document AWSFIS-RunSSM -Disk-Fill.

Si l'expérience à l'origine de cette erreur est arrêtée, soit manuellement, soit par le biais d'une condition d'arrêt, AWS FIS tente de revenir en arrière en annulant le document SSM en cours d'exécution. Toutefois, si le disque est plein à 100 %, soit en raison d'une panne, soit en raison d'une panne liée à l'activité de l'application, Systems Manager risque de ne pas être en mesure de terminer l'opération d'annulation. Par conséquent, si vous devez arrêter l'expérience, assurez-vous que le disque ne sera pas plein à 100 %.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-Disk-Fill

ARN

arn:aws:ssm:region::document/AWSFIS-Run-Disk-Fill

Paramètres du document
  • DurationSeconds : obligatoire. Durée du test de remplissage du disque, en secondes.

  • Percent : facultatif. Pourcentage du disque à allouer lors du test de remplissage du disque. La valeur par défaut est 95 %.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. L’argument par défaut est True. Les dépendances sont atd etfallocate.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-IO-Stress

Exécute le stress d'E/S sur une instance à l'aide de l'stress-ngoutil. Utilise le document AWSFIS-Run-IO-Stress SSM.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-IO-Stress

ARN

arn:aws:ssm:region::document/AWSFIS-Run-IO-Stress

Paramètres du document
  • DurationSeconds : obligatoire. Durée du test de stress IO, en secondes.

  • Workers : facultatif. Nombre de travailleurs qui exécutent une combinaison d'read/write operations, forced synchronizing, and cache dropping. Multiple child processes perform different I/Oopérations séquentielles, aléatoires et mappées en mémoire sur le même fichier. La valeur par défaut est 1.

  • Percent : facultatif. Pourcentage d'espace libre sur le système de fichiers à utiliser pendant le test de stress IO. La valeur par défaut est de 80 %.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. L’argument par défaut est True. La dépendance eststress-ng.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"Workers":"1", "Percent":"80", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Kill-Process

Arrête le processus spécifié dans l'instance à l'aide de la killall commande. Utilise le AWSFIS-Rundocument SSM -Kill-Process.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-Kill-Process

ARN

arn:aws:ssm:region::document/AWSFIS-Run-Kill-Process

Paramètres du document
  • ProcessName : obligatoire. Nom du processus à arrêter.

  • Signal : facultatif. Le signal à envoyer avec la commande. Les valeurs possibles sont SIGTERM (que le récepteur peut choisir d'ignorer) et SIGKILL (qui ne peuvent pas être ignorées). La valeur par défaut est SIGTERM.

  • InstallDependencies – Facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. L’argument par défaut est True. La dépendance estkillall.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"ProcessName":"myapplication", "Signal":"SIGTERM"}

AWSFIS-Run-Memory-Stress

Exécute un stress mémoire sur une instance à l'aide de l'stress-ngoutil. Utilise le document AWSFIS-Run-Memory-Stress SSM.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-Memory-Stress

ARN

arn:aws:ssm:region::document/AWSFIS-Run-Memory-Stress

Paramètres du document
  • DurationSeconds : obligatoire. Durée du test de stress mnésique, en secondes.

  • Workers : facultatif. Nombre de facteurs de stress liés à la mémoire virtuelle. La valeur par défaut est 1.

  • Percent : obligatoire. Pourcentage de mémoire virtuelle à utiliser pendant le test de stress lié à la mémoire.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. L’argument par défaut est True. La dépendance eststress-ng.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"Percent":"80", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Network-Blackhole-Port

Supprime le trafic entrant ou sortant pour le protocole et le port à l'aide de l'iptablesoutil. Utilise le document AWSFIS-RunSSM -Network-Blackhole-Port.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-Network-Blackhole-Port

ARN

arn:aws:ssm:region::document/AWSFIS-Run-Network-Blackhole-Port

Paramètres du document
  • Protocol : obligatoire. Protocole. Les valeurs possibles sont tcp et udp.

  • Port : obligatoire. Numéro de port.

  • TrafficType : facultatif. Type de trafic. Les valeurs possibles sont ingress et egress. La valeur par défaut est ingress.

  • DurationSeconds : obligatoire. Durée du test du trou noir du réseau, en secondes.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. L’argument par défaut est True. Les dépendances sont atddig, etiptables.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"Protocol":"tcp", "Port":"8080", "TrafficType":"egress", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Network-Latency

Ajoute de la latence à l'interface réseau à l'aide de l'tcoutil. Utilise le document AWSFIS-RunSSM -Network-Latency.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-Network-Latency

ARN

arn:aws:ssm:region::document/AWSFIS-Run-Network-Latency

Paramètres du document
  • Interface : facultatif. L'interface réseau. La valeur par défaut est eth0.

  • DelayMilliseconds – Facultatif. Le délai, en millisecondes. La valeur par défaut est 200.

  • DurationSeconds : obligatoire. Durée du test de latence du réseau, en secondes.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. L’argument par défaut est True. Les dépendances sont atddig, ettc.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"DelayMilliseconds":"200", "Interface":"eth0", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Network-Latency-Sources

Ajoute de la latence et de l'instabilité à l'interface réseau à l'aide de l'tcoutil pour le trafic à destination ou en provenance de sources spécifiques. Utilise le document AWSFIS-RunSSM -Network-Latency-Sources.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-Network-Latency-Sources

ARN

arn:aws:ssm:region::document/AWSFIS-Run-Network-Latency-Sources

Paramètres du document
  • Interface : facultatif. L'interface réseau. La valeur par défaut est eth0.

  • DelayMilliseconds – Facultatif. Le délai, en millisecondes. La valeur par défaut est 200.

  • JitterMilliseconds : facultatif. L'instabilité, en millisecondes. La valeur par défaut est 10.

  • Sources : obligatoire. Les sources, séparées par des virgules. Les valeurs possibles sont les suivantes : une IPv4 adresse, un bloc IPv4 CIDR, un nom de domaine etS3. DYNAMODB Si vous spécifiez DYNAMODB ouS3, cela ne s'applique qu'au point de terminaison régional de la région actuelle.

  • TrafficType : facultatif. Type de trafic. Les valeurs possibles sont ingress et egress. La valeur par défaut est ingress.

  • DurationSeconds : obligatoire. Durée du test de latence du réseau, en secondes.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. L’argument par défaut est True. Les dépendances sont atddig,jq, ettc.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"DelayMilliseconds":"200", "JitterMilliseconds":"15", "Sources":"S3,www.example.com,72.21.198.67", "Interface":"eth0", "TrafficType":"egress", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Network-Packet-Loss

Ajoute la perte de paquets à l'interface réseau à l'aide de l'tcoutil. Utilise le document AWSFIS-RunSSM -Network-Packet-Loss.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-Network-Packet-Loss

ARN

arn:aws:ssm:region::document/AWSFIS-Run-Network-Packet-Loss

Paramètres du document
  • Interface : facultatif. L'interface réseau. La valeur par défaut est eth0.

  • LossPercent – Facultatif. Pourcentage de perte de paquets. La valeur par défaut est de 7 %.

  • DurationSeconds : obligatoire. Durée du test de perte de paquets réseau, en secondes.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles. L’argument par défaut est True. Les dépendances sont atddig, ettc.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"LossPercent":"15", "Interface":"eth0", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Network-Packet-Loss-Sources

Ajoute la perte de paquets à l'interface réseau à l'aide de l'tcoutil pour le trafic à destination ou en provenance de sources spécifiques. Utilise le document SSM AWSFIS-Run-Network-Packet-Loss-Sources.

Type d'action (console uniquement)

aws:ssm:send-command/AWSFIS-Run-Network-Packet-Loss-Sources

ARN

arn:aws:ssm:region::document/AWSFIS-Run-Network-Packet-Loss-Sources

Paramètres du document
  • Interface : facultatif. L'interface réseau. La valeur par défaut est eth0.

  • LossPercent – Facultatif. Pourcentage de perte de paquets. La valeur par défaut est de 7 %.

  • Sources : obligatoire. Les sources, séparées par des virgules. Les valeurs possibles sont les suivantes : une IPv4 adresse, un bloc IPv4 CIDR, un nom de domaine etS3. DYNAMODB Si vous spécifiez DYNAMODB ouS3, cela ne s'applique qu'au point de terminaison régional de la région actuelle.

  • TrafficType : facultatif. Type de trafic. Les valeurs possibles sont ingress et egress. La valeur par défaut est ingress.

  • DurationSeconds : obligatoire. Durée du test de perte de paquets réseau, en secondes.

  • InstallDependencies : facultatif. Si la valeur est définie sur cette valeurTrue, Systems Manager installe les dépendances requises sur les instances cibles. L’argument par défaut est True. Les dépendances sont atddig,jq, ettc.

Voici un exemple de chaîne que vous pouvez saisir dans la console.

{"LossPercent":"15", "Sources":"S3,www.example.com,72.21.198.67", "Interface":"eth0", "TrafficType":"egress", "DurationSeconds":"60", "InstallDependencies":"True"}

Exemples

Pour un exemple de modèle d'expérience, voirExécuter un document préconfiguré AWS FIS SSM.

Pour voir un exemple de didacticiel, consultez la section Exercez CPU du stress sur une instance.

Résolution des problèmes

Suivez la procédure ci-dessous pour résoudre les problèmes.

Pour résoudre les problèmes liés aux documents SSM
  1. Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le volet de navigation, choisissez Node Management, Run Command.

  3. Dans l'onglet Historique des commandes, utilisez les filtres pour localiser l'exécution du document.

  4. Choisissez l'ID de la commande pour ouvrir sa page de détails.

  5. Choisissez l'ID de l'instance. Vérifiez le résultat et les erreurs pour chaque étape.