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 documents Systems Manager SSM avec AWS POISSON
AWS Le FIS prend en charge les types de défauts personnalisés via l'agent AWS Systems Manager SSM et l'action AWS aws:ssm:commande d'envoi FIS. Pre-configured Les documents SSM 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 préfixe AWSFIS-.
SSM Agent est un logiciel Amazon qui peut être installé et configuré sur des instances Amazon EC2, des serveurs locaux ou des machines virtuelles (VM). 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 Amazon-owned documents publics.
Exigences
Pour les actions qui nécessitent que l'agent SSM exécute l'action sur la cible, vous devez vous assurer que :
-
L'agent est installé sur la cible. L'agent SSM est installé par défaut sur certaines Amazon Machine Images (AMI). Sinon, vous pouvez installer l'agent SSM sur vos instances. Pour plus d'informations, voir Installation manuelle de l'agent SSM pour les instances EC2 dans le Guide de l'AWS Systems Manager utilisateur.
-
Systems Manager est autorisé à effectuer des actions sur vos instances. Vous accordez l'accès à l'aide d'un profil d'instance IAM. Pour plus d'informations, voir Créer un profil d'instance IAM pour Systems Manager et joindre un profil d'instance IAM à une instance EC2 dans le Guide de l'AWS Systems Manager utilisateur.
Utilisez la commande aws:ssm:commande d'envoi 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 créer les vôtres. Pour plus d'informations sur la création de votre propre document SSM, consultez la section Création de documents 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 La 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
Pour utiliser un document SSM dans vos expériences AWS FIS, vous pouvez utiliser l'aws:ssm:commande d'envoiaction. 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 d'expérience, 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 qui sont des chaînes ou des tableaux de chaînes.
-
documentVersion : facultatif. Version du document SSM à exécuter.
Vous pouvez consulter les informations relatives à 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
-
Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/
. -
Dans le panneau de navigation, cliquez sur Documents.
-
Sélectionnez le document, puis cliquez sur l'onglet Détails.
Pour afficher des informations sur un document SSM à l'aide de la ligne de commande
Utilisez la commande SSM describe-document.
En savoir plus sur l'état d'action
L'état de l'action SSM est déterminé par les statuts des commandes SSM.
Pre-configured AWS Documents de la FIS SSM
Vous pouvez utiliser des documents AWS FIS SSM préconfigurés avec l'aws:ssm:send-commandaction dans vos modèles d'expériences.
Exigences
-
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
Ubuntu
RÈGLES 8, 9
CentOS 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 d'autres types de nœuds gérés, tels que les serveurs sur site.
Pour utiliser ces documents SSM dans le cadre d'expériences sur des tâches ECS, utilisez les documents correspondantsActions d'Amazon ECS. Par exemple, l'aws:ecs:task-cpu-stressaction utilise le AWSFIS-Run-CPU-Stress document.
Documents
Différence entre la durée de l'action et DurationSeconds AWS Documents de la 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 des actions de la 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 d'actions multiples, 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 La FIS surveille chaque action jusqu'à ce que sa durée d'action 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 des valeurs différentes pour les deux types de durée :
-
Action duration exceeds DurationSeconds: L'exécution du document SSM se termine avant la fin de l'action. AWS Le FIS attend que la durée de l'action soit écoulée avant de démarrer les actions suivantes.
-
Action duration is shorter than DurationSeconds: Le document SSM poursuit 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 écoulé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-Run-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 résistance du processeur, en secondes.
-
CPU : facultatif. Le nombre de facteurs de stress du processeur à utiliser. La valeur par défaut est 0, ce qui utilise tous les facteurs de stress du processeur.
-
LoadPercent : facultatif. Pourcentage de charge du processeur cible, compris entre 0 (charge vide) et 100 (pleine charge). La valeur par défaut est 100.
-
InstallDependencies : facultatif. Si la valeur est
True, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. La valeur par défaut estTrue. 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 pour simuler une défaillance complète du disque. Utilise le document AWSFIS-Run-Disk-Fill
Si l'expérience injectant cette erreur est arrêtée, manuellement ou par le biais d'une condition d'arrêt, le 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 à cause de l'erreur, soit à cause de l'erreur associée à l'activité de l'application, il est possible que Systems Manager ne soit pas 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 de disque à allouer lors du test de remplissage du disque. La valeur par défaut est 95 %.
-
InstallDependencies : facultatif. Si la valeur est
True, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. La valeur par défaut estTrue. Les dépendances sontatd, kmod etfallocate.
Voici un exemple de chaîne que vous pouvez saisir dans la console.
{"DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-IO-Stress
Exécute une contrainte d'E/S sur une instance à l'aide de l'stress-ngoutil. Utilise le document AWSFIS-Run-IO-Stress
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 résistance IO, en secondes.
-
Workers : facultatif. Le nombre de travailleurs qui effectuent une combinaison d' read/write opérations séquentielles, aléatoires et mappées en mémoire, de synchronisation forcée et de suppression du cache. Plusieurs processus enfants effectuent différentes I/O opérations 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 lors du test de résistance des E/S. La valeur par défaut est 80 %.
-
InstallDependencies : facultatif. Si la valeur est
True, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. La valeur par défaut estTrue. 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-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. Le 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) etSIGKILL(qui ne peut pas être ignorée). La valeur par défaut estSIGTERM. -
InstallDependencies – Facultatif. Si la valeur est
True, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. La valeur par défaut estTrue. 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
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. Le 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 lors du test de stress de la mémoire.
-
InstallDependencies : facultatif. Si la valeur est
True, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. La valeur par défaut estTrue. La dépendance l'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-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
tcpetudp. -
Port : obligatoire. Numéro de port.
-
TrafficType : facultatif. Type de trafic. Les valeurs possibles sont
ingressetegress. La valeur par défaut estingress. -
DurationSeconds : obligatoire. Durée du test du trou noir du réseau, en secondes.
-
InstallDependencies : facultatif. Si la valeur est
True, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. La valeur par défaut estTrue. Les dépendances sont atddig,lsof, 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-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
True, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. La valeur par défaut estTrue. 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 la gigue à l'interface réseau à l'aide de l'tcoutil pour le trafic en provenance ou à destination de sources spécifiques. Utilise le document AWSFIS-Run-Network-Latency-Sources
Utilisez le FlowsPercent paramètre pour ajouter de la latence sur un pourcentage des connexions.
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. Les interfaces réseau, séparées par des virgules. Les valeurs ALL et DEFAULT sont prises en charge. La valeur par défaut est
DEFAULT, qui ciblera l'interface réseau principale du système d'exploitation. -
DelayMilliseconds : facultatif. Le délai, en millisecondes. La valeur par défaut est 200.
-
JitterMilliseconds : facultatif. La gigue, en millisecondes. La valeur par défaut est 10.
-
FlowsPercent : facultatif. Pourcentage de flux réseau qui seront affectés par l'action. La par défaut est de 100 %.
-
Sources : obligatoire. Les sources, séparées par des virgules, sans espaces. Les valeurs possibles sont les suivantes : une adresse IPv4, un bloc d'adresse CIDR IPv4, un nom de domaine, un nom AZ (us-east-1a), un identifiant AZ (use1-az1), ALL et.
DYNAMODBS3Si vous spécifiezDYNAMODBouS3, cela s'applique uniquement au point de terminaison régional de la région actuelle. Le trafic IPv6 n'est pas perturbé par ce document. -
TrafficType : facultatif. Type de trafic. Les valeurs possibles sont
ingressetegress. La valeur par défaut estingress. -
DurationSeconds : obligatoire. Durée du test de latence du réseau, en secondes.
-
InstallDependencies : facultatif. Si la valeur est
True, Systems Manager installe les dépendances requises sur les instances cibles si elles ne sont pas déjà installées. La valeur par défaut estTrue. Les dépendances sont atddig, jqlsof, ettc.
Lors de l'utilisation de ce document, le rôle d'expérimentation nécessite les autorisations suivantes :
ec2:DescribeInstancesec2:DescribeSubnets
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-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
True, Systems Manager installe les dépendances requises sur les instances cibles. La valeur par défaut estTrue. Les dépendances sont atdlsof,dig, 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-Sources
Utilisez le FlowsPercent paramètre pour injecter la perte de paquets sur un pourcentage des connexions.
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. Les interfaces réseau, séparées par des virgules. Les valeurs ALL et DEFAULT sont prises en charge. La valeur par défaut est
DEFAULT, qui ciblera l'interface réseau principale du système d'exploitation. -
LossPercent : facultatif. Pourcentage de perte de paquets. La valeur par défaut est de 7 %.
-
FlowsPercent : facultatif. Pourcentage de flux réseau qui seront affectés par l'action. La par défaut est de 100 %.
-
Sources : obligatoire. Les sources, séparées par des virgules, sans espaces. Les valeurs possibles sont les suivantes : une adresse IPv4, un bloc d'adresse CIDR IPv4, un nom de domaine, un nom AZ (us-east-1a), un identifiant AZ (use1-az1), ALL et.
DYNAMODBS3Si vous spécifiezDYNAMODBouS3, cela s'applique uniquement au point de terminaison régional de la région actuelle. Le trafic IPv6 n'est pas perturbé par ce document. -
TrafficType : facultatif. Type de trafic. Les valeurs possibles sont
ingressetegress. La valeur par défaut estingress. -
DurationSeconds : obligatoire. Durée du test de perte de paquets réseau, en secondes.
-
InstallDependencies : facultatif. Si la valeur est
True, Systems Manager installe les dépendances requises sur les instances cibles. La valeur par défaut estTrue. Les dépendances sont atddig, jqlsof, ettc.
Lors de l'utilisation de ce document, le rôle d'expérimentation nécessite les autorisations suivantes :
ec2:DescribeInstancesec2:DescribeSubnets
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écutez un programme préconfiguré AWS Document SSM de la FIS.
Pour voir un exemple de didacticiel, consultez la section Exécuter le stress du processeur sur une instance.
Limitations
-
Les documents suivants ne peuvent pas être exécutés en parallèle :
AWSFIS-Run-Network-Blackhole-Port
AWSFIS-Run-Network-Latency
AWSFIS-Run-Network-Latency-Sources
AWSFIS-Run-Network-Packet-Loss
AWSFIS-Run-Network-Packet-Loss-Sources
Scripts de restauration
AWS Les documents FIS SSM créent automatiquement des scripts de restauration en tant que mécanisme de sécurité pour restaurer l'état du système après des expériences d'injection de défauts. Ces scripts garantissent la suppression des erreurs injectées, même si l'action échoue ou s'arrête de manière inattendue.
Création d'un script de restauration
Les scripts de restauration sont créés automatiquement lorsque les expériences d'injection de défauts commencent.
Détails de la création
-
Emplacement : les scripts sont créés dans le
/var/lib/amazon/ssm/répertoire. -
Modèle de dénomination :
où seFAULT_NAME-FAULT_IDENTIFIER-Rollback.shFAULT_IDENTIFIERtrouve une chaîne de 32 caractères générée de manière aléatoire -
Chronométrage : créé au début de chaque expérience d'injection de défauts, avant le début de l'injection de défauts.
-
Contenu : contient toutes les variables d'environnement et les commandes nécessaires pour inverser le défaut spécifique.
Par exemple, une expérience de latence réseau peut créer un script de restauration à /var/lib/amazon/ssm/NetworkLatency-abc123-Rollback.sh l'adresse.
Journalisation des annulations
Les scripts de restauration implémentent une double journalisation pour capturer toutes les activités d'annulation à des fins de dépannage et d'audit.
Emplacement des fichiers journaux
Lorsqu'un script de restauration s'exécute, il crée des journaux à deux emplacements :
-
Fichiers temporaires —
/tmp/aws-fis-rollback-TIMESTAMP-PID.log -
Journaux système — Envoyés à Syslog avec facilité
local0.info
Dénomination des fichiers journaux
Les fichiers journaux temporaires utilisent la convention de dénomination suivante :
/tmp/aws-fis-rollback-YYYY-MM-DDTHH:MM:SSZ-PID.log
Où YYYY-MM-DDTHH:MM:SSZ se trouvent l'horodatage UTC et PID l'ID de processus du script de restauration.
Configuration de Syslog
Les journaux de restauration sont envoyés à syslog avec la configuration suivante :
Étiqueter —
aws-fis-rollbackPriorité —
local0.infoFormat —
[YYYY-MM-DDTHH:MM:SSZ]log_message
Pour afficher les journaux d'annulation
Utilisez la commande suivante pour afficher tous les journaux d'annulation du journal systemd :
sudo journalctl -t aws-fis-rollback
Résolution des problèmes
Suivez la procédure suivante pour résoudre les problèmes.
Pour résoudre les problèmes liés aux documents SSM
Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/
. -
Dans le volet de navigation, choisissez Node Management, Run Command.
-
Dans l'onglet Historique des commandes, utilisez les filtres pour localiser l'exécution du document.
-
Choisissez l'ID de la commande pour ouvrir sa page de détails.
-
Choisissez l'ID de l'instance. Passez en revue les résultats et les erreurs pour chaque étape.