View a markdown version of this page

Usa i documenti SSM di Systems Manager con AWS FIS - AWS Servizio di iniezione guasti

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa i documenti SSM di Systems Manager con AWS FIS

AWS FIS supporta tipi di errore personalizzati tramite l'agente AWS Systems Manager SSM e l' AWS azione FIS. aws:ssm:send-command Pre-configured I documenti SSM di Systems Manager (documenti SSM) che possono essere utilizzati per creare azioni di iniezione di guasti comuni sono disponibili come AWS documenti pubblici che iniziano con il prefisso AWSFIS-.

SSM Agent è un software Amazon che può essere installato e configurato su istanze Amazon EC2, server locali o macchine virtuali (VM). Ciò consente a Systems Manager di gestire queste risorse. L'agente elabora le richieste provenienti da Systems Manager e quindi le esegue come specificato nella richiesta. È possibile includere un documento SSM personalizzato per inserire errori personalizzati o fare riferimento a uno dei documenti pubblici. Amazon-owned

Requisiti

Per le azioni che richiedono che l'agente SSM esegua l'azione sulla destinazione, è necessario verificare quanto segue:

Usa il comando aws:ssm:send-command operazione

Un documento SSM definisce le operazioni eseguite da Systems Manager sulle istanze gestite. Systems Manager include una serie di documenti preconfigurati oppure è possibile crearne di propri. Per ulteriori informazioni sulla creazione di un documento SSM personalizzato, vedere Creazione di documenti Systems Manager nella Guida per l'AWS Systems Manager utente. Per ulteriori informazioni sui documenti SSM in generale, vedere i AWS Systems Manager documenti nella Guida per l'AWS Systems Manager utente.

AWS FIS fornisce documenti SSM preconfigurati. È possibile visualizzare i documenti SSM preconfigurati in Documenti nella console:. AWS Systems Manager https://console.aws.amazon.com/systems-manager/documents Puoi anche scegliere tra una selezione di documenti preconfigurati nella console FIS. AWS Per ulteriori informazioni, consulta Pre-configured AWS Documenti FIS SSM.

Per utilizzare un documento SSM nei tuoi esperimenti AWS FIS, puoi usare l'azione. aws:ssm:send-command Questa azione recupera ed esegue il documento SSM specificato sulle istanze di destinazione.

Quando utilizzate l'aws:ssm:send-commandazione nel modello di esperimento, dovete specificare parametri aggiuntivi per l'azione, inclusi i seguenti:

  • documentArn: obbligatorio L'Amazon Resource Name (ARN) del documento SSM.

  • documentParameters— Condizionale. I parametri obbligatori e opzionali accettati dal documento SSM. Il formato è un oggetto JSON con chiavi che sono stringhe e valori che sono stringhe o matrici di stringhe.

  • documentVersion: opzionale. La versione del documento SSM da eseguire.

È possibile visualizzare le informazioni per un documento SSM (inclusi i parametri del documento) utilizzando la console di Systems Manager o la riga di comando.

Per visualizzare le informazioni su un documento SSM utilizzando la console
  1. Apri la AWS Systems Manager console all'indirizzo. https://console.aws.amazon.com/systems-manager/

  2. Nel pannello di navigazione, scegli Documenti.

  3. Seleziona il documento e scegli la scheda Dettagli.

Per visualizzare le informazioni su un documento SSM utilizzando la riga di comando

Utilizzate il comando SSM https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-document.html describe-document.

Scopri di più sullo stato dell'azione

Lo stato dell'azione SSM è determinato dagli stati dei comandi SSM.

Pre-configured AWS Documenti FIS SSM

È possibile utilizzare documenti AWS FIS SSM preconfigurati con l'aws:ssm:send-commandazione contenuta nei modelli di esperimento.

Requisiti
  • I documenti SSM preconfigurati forniti da AWS FIS sono supportati solo sui seguenti sistemi operativi:

    • Amazon Linux 2023

    • Ubuntu

    • RHEL 8, 9

    • CentOS 9

  • I documenti SSM preconfigurati forniti da AWS FIS sono supportati solo sulle istanze EC2. Non sono supportati su altri tipi di nodi gestiti, come i server locali.

Per utilizzare questi documenti SSM in esperimenti sulle attività ECS, usa il corrispondente. Azioni Amazon ECS Ad esempio, l'aws:ecs:task-cpu-stressazione utilizza il AWSFIS-Run-CPU-Stress documento.

Differenza tra durata dell'azione e DurationSeconds in AWS Documenti FIS SSM

Alcuni documenti SSM limitano il proprio tempo di esecuzione, ad esempio il DurationSeconds parametro viene utilizzato da alcuni documenti FIS SSM preconfigurati AWS . Di conseguenza, è necessario specificare due durate indipendenti nella definizione dell'azione FIS: AWS

  • Action duration: per gli esperimenti con una singola azione, la durata dell'azione è equivalente alla durata dell'esperimento. Nel caso di azioni multiple, la durata dell'esperimento dipende dalla durata delle singole azioni e dall'ordine in cui vengono eseguite. AWS La FIS monitora ogni azione fino alla scadenza della relativa durata.

  • Parametro del documentoDurationSeconds: la durata, specificata in secondi, per la quale verrà eseguito il documento SSM.

È possibile scegliere valori diversi per i due tipi di durata:

  • Action duration exceeds DurationSeconds: l'esecuzione del documento SSM termina prima del completamento dell'azione. AWS FIS attende che sia trascorsa la durata dell'azione prima di iniziare le azioni successive.

  • Action duration is shorter than DurationSeconds: Il documento SSM continua l'esecuzione dopo il completamento dell'azione. Se l'esecuzione del documento SSM è ancora in corso e la durata dell'azione è trascorsa, lo stato dell'azione è impostato su Completata. AWS FIS monitora l'esecuzione solo fino alla scadenza della durata dell'azione.

Nota che alcuni documenti SSM hanno durate variabili. Ad esempio, i documenti AWS FIS SSM hanno la possibilità di installare i prerequisiti, che possono estendere la durata complessiva dell'esecuzione oltre il parametro specificato. DurationSeconds Pertanto, se si imposta la durata dell'azione e DurationSeconds lo stesso valore, è possibile che lo script SSM venga eseguito più a lungo della durata dell'azione.

AWSFIS-Run-CPU-Stress

Esegue lo stress della CPU su un'istanza utilizzando lo stress-ng strumento. Utilizza il documento AWSFIS-Run-CPU-Stress SSM.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • DurationSeconds: obbligatorio La durata dello stress test della CPU, in secondi.

  • CPU: opzionale. Il numero di fattori di stress della CPU da utilizzare. L'impostazione predefinita è 0, che utilizza tutti i fattori di stress della CPU.

  • LoadPercent: opzionale. La percentuale di carico della CPU target, da 0 (senza carico) a 100 (pieno carico). Il valore di default è 100.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione se non sono già installate. Il valore predefinito è True. La dipendenza è. stress-ng

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

AWSFIS-Run-Disk-Fill

Alloca lo spazio su disco nel volume principale di un'istanza per simulare un errore completo del disco. Utilizza il documento AWSFIS-Run-Disk-Fill SSM.

Se l'esperimento che causa questo errore viene interrotto, manualmente o tramite una condizione di arresto, AWS FIS tenta di eseguire il rollback annullando il documento SSM in esecuzione. Tuttavia, se il disco è pieno al 100%, a causa dell'errore o del guasto e dell'attività dell'applicazione, Systems Manager potrebbe non essere in grado di completare l'operazione di annullamento. Pertanto, se è necessario interrompere l'esperimento, assicurarsi che il disco non sia pieno al 100%.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • DurationSeconds: obbligatorio La durata del test di riempimento del disco, in secondi.

  • Percent: opzionale. La percentuale del disco da allocare durante il test di riempimento del disco. L'impostazione predefinita è 95%.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione se non sono già installate. Il valore predefinito è True. Le dipendenze sono, e. atd kmod fallocate

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

AWSFIS-Run-IO-Stress

Esegue lo stress di I/O su un'istanza utilizzando lo stress-ng strumento. Utilizza il documento AWSFIS-Run-IO-Stress SSM.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • DurationSeconds: obbligatorio La durata dello stress test IO, in secondi.

  • Workers: opzionale. Il numero di lavoratori che eseguono una combinazione di read/write operazioni sequenziali, casuali e mappate in memoria, sincronizzazione forzata e eliminazione della cache. Più processi secondari eseguono operazioni diverse sullo stesso file. I/O Il valore di default è 1.

  • Percent: opzionale. La percentuale di spazio libero sul file system da utilizzare durante lo stress test IO. L'impostazione predefinita è 80%.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione se non sono già installate. Il valore predefinito è True. La dipendenza è. stress-ng

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

AWSFIS-Run-Kill-Process

Interrompe il processo specificato nell'istanza, utilizzando il killall comando. Utilizza il documento AWSFIS-Run-Kill-Process SSM.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • ProcessName: obbligatorio Il nome del processo da interrompere.

  • Signal: opzionale. Il segnale da inviare insieme al comando. I valori possibili sono SIGTERM (che il ricevitore può scegliere di ignorare) e SIGKILL (che non possono essere ignorati). Il valore predefinito è SIGTERM.

  • InstallDependencies Facoltativo. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione se non sono già installate. Il valore predefinito è True. La dipendenza èkillall.

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

AWSFIS-Run-Memory-Stress

Esegue lo stress della memoria su un'istanza utilizzando lo stress-ng strumento. Utilizza il documento AWSFIS-Run-Memory-Stress SSM.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • DurationSeconds: obbligatorio La durata dello stress test di memoria, in secondi.

  • Workers: opzionale. Il numero di fattori di stress della memoria virtuale. Il valore di default è 1.

  • Percent: obbligatorio La percentuale di memoria virtuale da utilizzare durante lo stress test della memoria.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione se non sono già installate. Il valore predefinito è True. La dipendenza è. stress-ng

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

AWSFIS-Run-Network-Blackhole-Port

Elimina il traffico in entrata o in uscita per il protocollo e la porta utilizzando lo iptables strumento. Utilizza il documento AWSFIS-Run-Network-Blackhole-Port SSM.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • Protocol: obbligatorio Il protocollo. I valori possibili sono tcp e udp.

  • Port: obbligatorio Il numero di porta.

  • TrafficType: opzionale. Il tipo di traffico. I valori possibili sono ingress e egress. Il valore di default è ingress.

  • DurationSeconds: obbligatorio La durata del test del buco nero della rete, in secondi.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione se non sono già installate. Il valore predefinito è True. Le dipendenze sonoatd,, edig. lsof iptables

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

AWSFIS-Run-Network-Latency

Aggiunge latenza all'interfaccia di rete utilizzando lo tc strumento. Utilizza il documento AWSFIS-Run-Network-Latency SSM.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • Interface: opzionale. L'interfaccia di rete. Il valore predefinito è eth0.

  • DelayMilliseconds Facoltativo. Il ritardo, in millisecondi. L'impostazione predefinita è 200.

  • DurationSeconds: obbligatorio La durata del test di latenza di rete, in secondi.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione se non sono già installate. Il valore predefinito è True. Le dipendenze sonoatd, e. dig tc

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

AWSFIS-Run-Network-Latency-Sources

Aggiunge latenza e jitter all'interfaccia di rete utilizzando tc lo strumento per il traffico da o verso fonti specifiche. Utilizza il documento AWSFIS-Run-Network-Latency-Sources SSM.

Usa il FlowsPercent parametro per aggiungere latenza su una percentuale delle connessioni.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • Interface: opzionale. Le interfacce di rete, separate da virgole. I valori ALL e DEFAULT sono supportati. L'impostazione predefinita èDEFAULT, che avrà come destinazione l'interfaccia di rete principale per il sistema operativo.

  • DelayMilliseconds: opzionale. Il ritardo, in millisecondi. L'impostazione predefinita è 200.

  • JitterMilliseconds: opzionale. Il jitter, in millisecondi. Il valore predefinito è 10.

  • FlowsPercent: opzionale. La percentuale di flussi di rete che saranno influenzati dall'azione. Il valore di default è 100%.

  • Sources: obbligatorio Le fonti, separate da virgole, senza spazi. I valori possibili sono: un indirizzo IPv4, un blocco CIDR IPv4, un nome di dominio, un nome AZ (us-east-1a), un ID AZ (use1-az1), ALL e. DYNAMODB S3 Se si specifica DYNAMODB o, ciò si applica solo all'endpoint regionale nella regione S3 corrente. Il traffico IPv6 non è compromesso da questo documento.

  • TrafficType: opzionale. Il tipo di traffico. I valori possibili sono ingress e egress. Il valore di default è ingress.

  • DurationSeconds: obbligatorio La durata del test di latenza di rete, in secondi.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione se non sono già installate. Il valore predefinito è True. Le dipendenze sonoatd,dig, jq e. lsof tc

Quando si utilizza questo documento, il ruolo dell'esperimento richiede le seguenti autorizzazioni:

  • ec2:DescribeInstances

  • ec2:DescribeSubnets

Di seguito è riportato un esempio della stringa che è possibile immettere nella 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

Aggiunge la perdita di pacchetti all'interfaccia di rete utilizzando lo tc strumento. Utilizza il documento AWSFIS-Run-Network-Packet-Loss SSM.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • Interface: opzionale. L'interfaccia di rete. Il valore predefinito è eth0.

  • LossPercent Facoltativo. La percentuale di perdita di pacchetti. L'impostazione predefinita è 7%.

  • DurationSeconds: obbligatorio La durata del test di perdita dei pacchetti di rete, in secondi.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione. Il valore predefinito è True. Le dipendenze sonoatd,, elsof. dig tc

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

AWSFIS-Run-Network-Packet-Loss-Sources

Aggiunge la perdita di pacchetti all'interfaccia di rete utilizzando lo tc strumento per il traffico da o verso fonti specifiche. Utilizza il documento AWSFIS-Run-Network-Packet-Loss-Sources SSM.

Usa il FlowsPercent parametro per iniettare la perdita di pacchetti su una percentuale delle connessioni.

Tipo di azione (solo console)

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

ARN

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

Parametri del documento
  • Interface: opzionale. Le interfacce di rete, separate da virgole. I valori ALL e DEFAULT sono supportati. L'impostazione predefinita èDEFAULT, che avrà come destinazione l'interfaccia di rete principale per il sistema operativo.

  • LossPercent: opzionale. La percentuale di perdita di pacchetti. L'impostazione predefinita è 7%.

  • FlowsPercent: opzionale. La percentuale di flussi di rete che saranno influenzati dall'azione. Il valore di default è 100%.

  • Sources: obbligatorio Le fonti, separate da virgole, senza spazi. I valori possibili sono: un indirizzo IPv4, un blocco CIDR IPv4, un nome di dominio, un nome AZ (us-east-1a), un ID AZ (use1-az1), ALL e. DYNAMODB S3 Se si specifica DYNAMODB o, ciò si applica solo all'endpoint regionale nella regione S3 corrente. Il traffico IPv6 non è compromesso da questo documento.

  • TrafficType: opzionale. Il tipo di traffico. I valori possibili sono ingress e egress. Il valore di default è ingress.

  • DurationSeconds: obbligatorio La durata del test di perdita dei pacchetti di rete, in secondi.

  • InstallDependencies: opzionale. Se il valore èTrue, Systems Manager installa le dipendenze richieste sulle istanze di destinazione. Il valore predefinito è True. Le dipendenze sonoatd,dig, jq e. lsof tc

Quando si utilizza questo documento, il ruolo dell'esperimento richiede le seguenti autorizzazioni:

  • ec2:DescribeInstances

  • ec2:DescribeSubnets

Di seguito è riportato un esempio della stringa che è possibile immettere nella console.

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

Esempi

Per un modello di esperimento di esempio, vedereEsegui una configurazione preconfigurata AWS Documento FIS SSM.

Per un esempio di tutorial, consultare Esegui lo stress della CPU su un'istanza.

Limitazioni

  • I seguenti documenti non possono essere eseguiti in parallelo:

    • 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

script di rollback

AWS I documenti FIS SSM creano automaticamente script di rollback come meccanismo di sicurezza per ripristinare lo stato del sistema dopo esperimenti di iniezione di guasti. Questi script assicurano che i guasti iniettati vengano rimossi, anche se l'azione fallisce o viene interrotta in modo imprevisto.

Creazione di script di rollback

Gli script di rollback vengono creati automaticamente all'inizio degli esperimenti di fault injection.

Dettagli sulla creazione
  • Posizione: gli script vengono creati nella /var/lib/amazon/ssm/ directory.

  • Schema di denominazione: FAULT_NAME-FAULT_IDENTIFIER-Rollback.sh FAULT_IDENTIFIER dov'è una stringa di 32 caratteri generata casualmente

  • Tempistica: creata all'inizio di ogni esperimento di iniezione del guasto, prima dell'inizio dell'iniezione del guasto.

  • Contenuto: contiene tutte le variabili di ambiente e i comandi necessari per invertire l'errore specifico.

Ad esempio, un esperimento di latenza di rete potrebbe creare uno script di rollback in. /var/lib/amazon/ssm/NetworkLatency-abc123-Rollback.sh

Registrazione di rollback

Gli script di rollback implementano la doppia registrazione per acquisire tutte le attività di rollback a fini di risoluzione dei problemi e controllo.

Posizioni dei file di registro

Quando viene eseguito uno script di rollback, crea i log in due posizioni:

  • File temporanei — /tmp/aws-fis-rollback-TIMESTAMP-PID.log

  • Registri di sistema: inviati a syslog con facilità local0.info

Denominazione dei file di registro

I file di registro temporanei utilizzano la seguente convenzione di denominazione:

/tmp/aws-fis-rollback-YYYY-MM-DDTHH:MM:SSZ-PID.log

Dove YYYY-MM-DDTHH:MM:SSZ è il timestamp UTC e PID l'ID del processo dello script di rollback.

Configurazione Syslog

I log di rollback vengono inviati a syslog con la seguente configurazione:

  • Etichetta: aws-fis-rollback

  • Priorità — local0.info

  • Formato — [YYYY-MM-DDTHH:MM:SSZ] log_message

Per visualizzare i log di rollback

Usa il comando seguente per visualizzare tutti i log di rollback dal journal systemd:

sudo journalctl -t aws-fis-rollback

Risoluzione dei problemi

Utilizzate la seguente procedura per risolvere i problemi.

Per risolvere i problemi relativi ai documenti SSM
  1. Apri la console all' AWS Systems Manager indirizzo. https://console.aws.amazon.com/systems-manager/

  2. Nel pannello di navigazione, scegli Node Management, Run Command.

  3. Nella scheda Cronologia dei comandi, utilizza i filtri per individuare l'esecuzione del documento.

  4. Scegli l'ID del comando per aprirne la pagina dei dettagli.

  5. Scegli l'ID dell'istanza. Esamina l'output e gli errori per ogni passaggio.