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:
-
L'agente è installato sulla destinazione. L'agente SSM è installato per impostazione predefinita su alcune Amazon Machine Images (AMI). Altrimenti, puoi installare l'agente SSM sulle tue istanze. Per ulteriori informazioni, consulta Installare manualmente l'agente SSM per le istanze EC2 nella Guida per l'utente. AWS Systems Manager
-
Systems Manager è autorizzato a eseguire azioni sulle tue istanze. L'accesso viene concesso utilizzando un profilo di istanza IAM. Per ulteriori informazioni, consulta Creare un profilo di istanza IAM per Systems Manager e collegare un profilo di istanza IAM a un'istanza EC2 nella Guida per l'AWS Systems Manager utente.
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
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
-
Apri la AWS Systems Manager console all'indirizzo. https://console.aws.amazon.com/systems-manager/
-
Nel pannello di navigazione, scegli Documenti.
-
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.
Documenti
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
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
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
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
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) eSIGKILL(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
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
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
tcpeudp. -
Port: obbligatorio Il numero di porta.
-
TrafficType: opzionale. Il tipo di traffico. I valori possibili sono
ingresseegress. 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
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
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.
DYNAMODBS3Se si specificaDYNAMODBo, ciò si applica solo all'endpoint regionale nella regioneS3corrente. Il traffico IPv6 non è compromesso da questo documento. -
TrafficType: opzionale. Il tipo di traffico. I valori possibili sono
ingresseegress. 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:DescribeInstancesec2: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
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
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.
DYNAMODBS3Se si specificaDYNAMODBo, ciò si applica solo all'endpoint regionale nella regioneS3corrente. Il traffico IPv6 non è compromesso da questo documento. -
TrafficType: opzionale. Il tipo di traffico. I valori possibili sono
ingresseegress. 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:DescribeInstancesec2: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.shFAULT_IDENTIFIERdov'è 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-rollbackPriorità —
local0.infoFormato —
[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
Apri la console all' AWS Systems Manager indirizzo. https://console.aws.amazon.com/systems-manager/
-
Nel pannello di navigazione, scegli Node Management, Run Command.
-
Nella scheda Cronologia dei comandi, utilizza i filtri per individuare l'esecuzione del documento.
-
Scegli l'ID del comando per aprirne la pagina dei dettagli.
-
Scegli l'ID dell'istanza. Esamina l'output e gli errori per ogni passaggio.