Utilisez les SSM documents Systems Manager avec AWS FIS - 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.

Utilisez les SSM documents Systems Manager avec AWS FIS

AWS FISprend en charge les types de pannes personnalisés via l' AWS Systems Manager SSMagent et l' AWS FISactionaws:ssm:send-command. Les documents préconfigurés de Systems Manager (SSMSSMdocuments) qui peuvent être utilisés pour créer des actions communes d'injection de défauts sont disponibles sous forme de AWS documents publics commençant par le préfixe AWSFIS -.

SSML'agent 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 SSM document pour ajouter 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'SSMagent exécute l'action sur la cible, vous devez vérifier les points suivants :

Utilisez la commande aws:ssm:send-command action

Un SSM document définit les actions que Systems Manager exécute 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 SSM document, consultez la section Création de documents Systems Manager dans le guide de AWS Systems Manager l'utilisateur. Pour plus d'informations sur SSM les documents en général, consultez AWS Systems Manager les documents du Guide de AWS Systems Manager l'utilisateur.

AWS FISfournit des SSM documents préconfigurés. Vous pouvez consulter les documents préconfigurés sous SSM 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 AWS FIS console. Pour de plus amples informations, veuillez consulter Documents préconfigurés AWS FIS SSM.

Pour utiliser un SSM document dans vos AWS FIS expériences, vous pouvez utiliser l'aws:ssm:send-commandaction. Cette action récupère et exécute le SSM document 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 la ressource Amazon (ARN) du SSM document.

  • documentParameters— Conditionnel. Les paramètres obligatoires et facultatifs acceptés par le SSM document. Le format est un JSON objet 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 SSM document à exécuter.

Vous pouvez consulter les informations d'un SSM document (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 SSM document à 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 SSM document à l'aide de la ligne de commande

Utilisez la commande SSM describe-document.

Documents préconfigurés AWS FIS SSM

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

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

    • Amazon Linux 2023, Amazon Linux 2, Amazon Linux

    • Ubuntu

    • RHEL7, 8, 9

    • CentOS 8, 9

  • Les SSM documents préconfigurés fournis par ne AWS FIS sont pris en charge que sur les EC2 instances. 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 SSM documents dans le cadre d'expériences sur ECS des tâches, utilisez le document correspondantECSActions d'Amazon. 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 celle figurant DurationSeconds dans AWS FIS SSM les documents

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

  • 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 FISsurveille 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 SSM document sera exécuté.

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

  • Action duration exceeds DurationSeconds: L'exécution du SSM document se termine avant que l'action ne soit terminée. AWS FISattend 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 SSM document continue l'exécution une fois l'action terminée. Si l'exécution du SSM document 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 FISsurveille uniquement l'exécution jusqu'à ce que la durée de l'action soit écoulée.

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

AWSFIS-Run-CPU-Stress

Exerce CPU du stress sur une instance à l'aide de l'stress-ngoutil. Utilise le AWSFISdocument -Run- CPU -StressSSM.

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 CPU stress, en secondes.

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

  • LoadPercent : facultatif. Pourcentage de CPU charge 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-Run-Disk-FillSSM.

Si l'expérience à l'origine de cette erreur est arrêtée, manuellement ou par le biais d'une condition d'arrêt, AWS FIS tente de revenir en arrière en annulant le document en cours d'exécutionSSM. 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-StressSSM.

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 effectuent une combinaison d'opérations de lecture/écriture séquentielles, aléatoires et mappées en mémoire, de synchronisation forcée et de suppression du cache. Plusieurs processus enfants exécutent différentes opérations d'E/S 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 estTrue, 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 document AWSFIS-Run-Kill-ProcessSSM.

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 estTrue, 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-StressSSM.

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 estTrue, 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-Run-Network-Blackhole-PortSSM.

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 estTrue, 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-Run-Network-LatencySSM.

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 estTrue, 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-Run-Network-Latency-SourcesSSM.

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 IPv4 CIDR bloc, 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 estTrue, 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-Run-Network-Packet-LossSSM.

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 AWSFIS-Run-Network-Packet-Loss-SourcesSSM.

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 IPv4 CIDR bloc, 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 préconfiguré AWS FISSSMdocument.

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.