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à.
Cross-AZ: Traffic Slowdown
È possibile utilizzare lo scenario Cross-AZ: Traffic Slowdown per iniettare la perdita di pacchetti per interrompere e rallentare il traffico tra le zone di disponibilità (). AZs La perdita di pacchetti compromette la comunicazione Cross-AZ, un'interruzione parziale, a volte nota come errore grigio. Inietta la perdita di pacchetti nei flussi di rete tra le risorse di destinazione. I flussi di rete rappresentano il traffico tra le risorse di elaborazione, ovvero i pacchetti di dati che trasportano richieste, risposte e altre comunicazioni tra server, contenitori e servizi. Lo scenario può aiutare a convalidare le configurazioni di osservabilità, regolare le soglie di allarme, scoprire la sensibilità e le dipendenze delle applicazioni nella comunicazione tra le AZ e prendere decisioni operative critiche come l'evacuazione dalla zona di emergenza.
Per impostazione predefinita, lo scenario inietta una perdita di pacchetti del 15% sul 100% dei flussi di rete in uscita per le risorse di destinazione della zona di attività selezionata per una durata di 30 minuti. Puoi utilizzare la finestra di dialogo Modifica parametri condivisi nella console AWS FIS per regolare i seguenti parametri a livello di scenario, che poi si applicano alle azioni sottostanti:
-
Zona di disponibilità: puoi selezionare l'AZ da compromettere e la perdita di pacchetti verrà iniettata da quella AZ all'altra AZs all'interno della regione.
-
Perdita di pacchetti: riduci la perdita di pacchetti per verificare eventuali interruzioni minime, ad esempio il 5%, o una percentuale superiore per testare gravi meccanismi di degradazione e ripristino della comunicazione, ad esempio il 50% o addirittura il 100% per ottenere un impatto totale sulla connettività.
-
Percentuale dei flussi: riduci per compromettere un sottoinsieme di traffico. Ad esempio, puoi iniettare una perdita di pacchetti del 15% che incide sul 25% dei flussi di rete per test ancora più accurati.
-
Durata: imposta la durata dell'esperimento. Puoi abbreviarlo per test più rapidi o eseguire test prolungati più lunghi. Ad esempio, imposta la durata su 2 ore per testare i meccanismi di recupero in condizioni compromesse.
-
Targeting delle risorse: puoi definire le risorse target per lo scenario generale utilizzando tag (per EC2 istanze o attività ECS su o EC2 Fargate) o etichette (per i pod EKS attivi). EC2 È possibile specificare tag ed etichette personalizzati o utilizzare i valori predefiniti forniti nello scenario. Se non desideri utilizzare tag o etichette, puoi modificare l'azione per indirizzare le risorse specificando altri parametri.
-
Personalizzazione: se non desideri utilizzare risorse target EC2 o ECS, puoi lasciare le azioni con i tag predefiniti. L'esperimento non troverà alcuna risorsa da indirizzare e l'azione verrà ignorata. Tuttavia, se non si desidera utilizzare come target le risorse EKS, è necessario rimuovere completamente l'azione e il target EKS dallo scenario, poiché è necessario fornire un identificatore del cluster EKS. Per una personalizzazione ancora più granulare, puoi modificare direttamente le singole azioni nel modello di esperimento.
Azioni
Nel loro insieme, le seguenti azioni aiutano a creare i sintomi di un rallentamento del traffico, AZs introducendo una perdita di pacchetti nelle comunicazioni in uscita dalla zona AZ di destinazione all'altra AZs nella regione a livello di rete. Queste azioni vengono eseguite in parallelo, ognuna delle quali comporta una perdita di pacchetti del 15% per 30 minuti per impostazione predefinita. Dopo questo periodo, la comunicazione torna alla normalità. Lo scenario richiede almeno uno dei seguenti tipi di risorse nella zona di disponibilità selezionata per essere eseguito: EC2 istanza, attività ECS o pod EKS.
Perdita di pacchetti di rete ECS
Cross-AZ: Traffic Slowdown include aws:ecs: task-network-packet-loss per iniettare la perdita di pacchetti per le attività ECS. L'azione si rivolge alle attività nella AZ selezionata e ne compromette la comunicazione in uscita con tutte le altre nella Regione. AZs È possibile personalizzare ulteriormente l'ambito dell'impatto modificando l'azione e aggiungendo o rimuovendo AZs dal Sources campo. Per impostazione predefinita, assegna alle attività un tag denominato CrossAZTrafficSlowdown con un valore diPacketLossForECS. Puoi sostituire il tag predefinito con il tuo o aggiungere il tag scenario alle tue attività. Se non viene trovata alcuna attività valida, questa azione verrà ignorata. Prima di eseguire un esperimento su ECS, è necessario seguire i passaggi di configurazione per le azioni delle attività ECS.
Perdita di pacchetti di rete EKS
Cross-AZ: Traffic Slowdown include aws:eks: pod-network-packet-loss per iniettare la perdita di pacchetti per i pod EKS. L'azione si rivolge ai pod nella AZ selezionata e ne compromette la comunicazione in uscita con tutti gli altri nella regione. AZs Puoi personalizzare ulteriormente l'ambito dell'impatto modificando l'azione e aggiungendola o rimuovendola AZs dal campo. Sources Per impostazione predefinita, ha come target i pod all'interno di un cluster che hanno etichette con il formato key=value. L'etichetta predefinita fornita è. CrossAZTraffic=PacketLossForEKS Puoi sostituire l'etichetta predefinita con la tua o aggiungere questa etichetta ai tuoi pod. Se non vengono trovati pod validi, questa azione verrà ignorata. Prima di eseguire un esperimento su EKS, è necessario seguire i passaggi di configurazione per le azioni dei pod EKS.
EC2 Perdita di pacchetti di rete
Cross-AZ: Traffic Slowdown utilizza l'azione aws:ssm:send-command per eseguire il documento AWSFIS-Run -Network-Packet-Loss-Sources per iniettare la perdita di pacchetti alle istanze e compromettere la loro comunicazione in uscita con tutte le altre istanze nella regione. EC2 AZs È possibile personalizzare ulteriormente l'ambito dell'impatto modificando l'azione e aggiungendo AZs o rimuovendo dal campo. Sources L'azione si rivolge alle istanze nella AZ selezionata. Per impostazione predefinita, si rivolge alle istanze con un tag denominato CrossAZTrafficSlowdown con un valore di. PacketLossForEC2 Puoi sostituire il tag predefinito con il tuo o aggiungere questo tag alle tue istanze. Se non vengono trovate istanze valide, questa azione verrà ignorata. Prima di eseguire un esperimento sull' EC2 uso di SSM, devi configurare l'agente AWS Systems Manager.
Limitazioni
-
Questo scenario non include le condizioni di arresto. Le condizioni di arresto corrette per l'applicazione devono essere aggiunte al modello dell'esperimento.
Requisiti
-
Aggiungi le autorizzazioni richieste al ruolo dell'esperimento AWS FIS.
-
È necessario indirizzare una o più risorse da uno dei seguenti 3 tipi all'interno della AZ selezionata: EC2 istanze, attività ECS o pod EKS.
-
Tutte le destinazioni dello scenario devono trovarsi nello stesso VPC.
Permissions
Per eseguire questo scenario è necessario un ruolo IAM con una policy di fiducia che consenta a FIS di assumere il ruolo e le policy gestite per i tipi di risorse scelti nell'esperimento: EC2 ECS ed EKS. Quando crei un modello di esperimento dallo scenario Cross-AZ: Traffic Slowdown, FIS crea il ruolo per te con la policy di fiducia e le seguenti policy gestite da AWS:
Se utilizzi un ruolo IAM esistente per eseguire lo scenario Cross-AZ: Traffic Slowdown, puoi allegare la seguente policy per concedere ad AWS FIS le autorizzazioni necessarie:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeTasks", "Effect": "Allow", "Action": "ecs:DescribeTasks", "Resource": "*" }, { "Sid": "DescribeContainerInstances", "Effect": "Allow", "Action": "ecs:DescribeContainerInstances", "Resource": "arn:aws:ecs:*:*:container-instance/*/*" }, { "Sid": "DescribeInstances", "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" }, { "Sid": "DescribeSubnets", "Effect": "Allow", "Action": "ec2:DescribeSubnets", "Resource": "*" }, { "Sid": "DescribeCluster", "Effect": "Allow", "Action": "eks:DescribeCluster", "Resource": "arn:aws:eks:*:*:cluster/*" }, { "Sid": "TargetResolutionByTags", "Effect": "Allow", "Action": "tag:GetResources", "Resource": "*" }, { "Sid": "SendCommand", "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ssm:*:*:managed-instance/*", "arn:aws:ssm:*:*:document/*" ] }, { "Sid": "ListCommands", "Effect": "Allow", "Action": [ "ssm:ListCommands" ], "Resource": "*" }, { "Sid": "CancelCommand", "Effect": "Allow", "Action": [ "ssm:CancelCommand" ], "Resource": "*" } ] }
Contenuto dello scenario
Il seguente contenuto definisce lo scenario. Questo codice JSON può essere salvato e utilizzato per creare un modello di esperimento utilizzando il create-experiment-template
{ "tags": { "Name": "Cross-AZ: Traffic Slowdown" }, "description": "Inject packet loss to disrupt and slow down traffic between AZs.", "actions": { "PacketLossForEC2": { "actionId": "aws:ssm:send-command", "parameters": { "duration": "PT30M", "documentArn": "arn:aws:ssm:us-east-1::document/AWSFIS-Run-Network-Packet-Loss-Sources", "documentParameters": "{\"Sources\":\"us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f\",\"LossPercent\":\"15\",\"Interface\":\"DEFAULT\",\"TrafficType\":\"egress\",\"DurationSeconds\":\"1800\",\"FlowsPercent\":\"100\",\"InstallDependencies\":\"True\"}" }, "targets": { "Instances": "TargetsForEC2" } }, "PacketLossForECS": { "actionId": "aws:ecs:task-network-packet-loss", "parameters": { "sources": "us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f", "lossPercent": "15", "duration": "PT30M", "flowsPercent": "100", "installDependencies": "true", "useEcsFaultInjectionEndpoints": "true" }, "targets": { "Tasks": "TargetsForECS" } }, "PacketLossForEKS": { "actionId": "aws:eks:pod-network-packet-loss", "parameters": { "sources": "us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f", "lossPercent": "15", "duration": "PT30M", "flowsPercent": "100", "interface": "DEFAULT", "kubernetesServiceAccount": "fis-service-account" }, "targets": { "Pods": "TargetsForEKS" } } }, "targets": { "TargetsForEC2": { "filters": [ { "path": "Placement.AvailabilityZone", "values": [ "us-east-1a" ] } ], "resourceTags": { "CrossAZTrafficSlowdown": "PacketLossForEC2" }, "resourceType": "aws:ec2:instance", "selectionMode": "ALL" }, "TargetsForECS": { "filters": [ { "path": "AvailabilityZone", "values": [ "us-east-1a" ] } ], "resourceTags": { "CrossAZTrafficSlowdown": "PacketLossForECS" }, "resourceType": "aws:ecs:task", "selectionMode": "ALL" }, "TargetsForEKS": { "parameters": { "availabilityZoneIdentifier": "us-east-1a", "clusterIdentifier": "", "namespace": "default", "selectorType": "labelSelector", "selectorValue": "CrossAZTrafficSlowdown=PacketLossForEKS" }, "resourceType": "aws:eks:pod", "selectionMode": "ALL" } }, "experimentOptions": { "accountTargeting": "single-account", "emptyTargetResolutionMode": "skip" }, "stopConditions": [ { "source": "none" } ] }