Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cross-AZ: Ralentización del tráfico
Puede utilizar el escenario Cross-AZ: ralentización del tráfico para reducir la pérdida de paquetes e interrumpir y ralentizar el tráfico entre las zonas de disponibilidad (AZ). La pérdida de paquetes perjudica la comunicación entre zonas de disponibilidad, lo que constituye una interrupción parcial, a veces denominada fallo gris. Inyecta la pérdida de paquetes en los flujos de red entre los recursos de destino. Los flujos de red representan el tráfico entre los recursos informáticos, es decir, los paquetes de datos que contienen las solicitudes, las respuestas y otras comunicaciones entre los servidores, los contenedores y los servicios. El escenario puede ayudar a validar las configuraciones de observabilidad, ajustar los umbrales de alarma, descubrir la sensibilidad de las aplicaciones y las dependencias en la comunicación entre zonas de disponibilidad y tomar decisiones operativas críticas, como la evacuación de zonas de disponibilidad.
De forma predeterminada, el escenario supone una pérdida de paquetes del 15% al 100% de los flujos de red salientes de los recursos de destino de la zona de disponibilidad seleccionada durante un período de 30 minutos. Puede usar el cuadro de diálogo Editar parámetros compartidos de la consola de AWS FIS para ajustar los siguientes parámetros a nivel de escenario, que luego se aplicarán a las acciones subyacentes:
-
Zona de disponibilidad: puede seleccionar la zona de disponibilidad que desea modificar y la pérdida de paquetes se transferirá de esa zona de disponibilidad a las demás zonas de disponibilidad de la región.
-
Pérdida de paquetes: ajuste la pérdida de paquetes a un nivel más bajo para realizar pruebas de interrupciones sutiles, como el 5%, o más, para probar los mecanismos de recuperación y degradación grave de la comunicación, como el 50%, o incluso el 100%, para lograr un impacto total en la conectividad.
-
Porcentaje de flujos: redúzcalo para afectar a un subconjunto del tráfico. Por ejemplo, puede inyectar una pérdida de paquetes del 15% que afecte al 25% de los flujos de la red para realizar pruebas aún más sutiles.
-
Duración: establece la duración del experimento. Puede acortarla para que las pruebas sean más rápidas o ejecutar pruebas sostenidas más largas. Por ejemplo, establece la duración en 2 horas para ayudar a probar los mecanismos de recuperación en condiciones deficientes.
-
Segmentación de recursos: puede definir los recursos objetivo para el escenario general mediante etiquetas (para las instancias de EC2 o las tareas de ECS en EC2 o Fargate) o etiquetas (para los pods de EKS en EC2). Puedes especificar tus propias etiquetas y etiquetas o usar los valores predeterminados que se proporcionan en el escenario. Si no deseas usar etiquetas o rótulos, puedes editar la acción para segmentar los recursos especificando otros parámetros.
-
Personalización: si no desea segmentar los recursos de EC2 o ECS, puede dejar las acciones con las etiquetas predeterminadas. El experimento no encontrará ningún recurso al que dirigirse y se omitirá la acción. Sin embargo, si no quiere centrarse en los recursos de EKS, debe eliminar completamente la acción y el objetivo de EKS del escenario, ya que es necesario proporcionar un identificador de clúster de EKS. Para una personalización aún más detallada, puede modificar directamente las acciones individuales en la plantilla del experimento.
Acciones
En conjunto, las siguientes acciones ayudan a crear los síntomas de una ralentización del tráfico entre zonas de disponibilidad al provocar la pérdida de paquetes en las comunicaciones salientes de la zona de disponibilidad de destino con otras zonas de disponibilidad de la región a nivel de red. Estas acciones se ejecutan en paralelo y, de forma predeterminada, cada una provoca una pérdida de paquetes del 15% durante 30 minutos. Transcurrido este período, la comunicación vuelve a la normalidad. El escenario necesita al menos uno de los siguientes tipos de recursos en la zona de disponibilidad seleccionada para ejecutarse: instancia EC2, tarea ECS o pod EKS.
Pérdida de paquetes de red ECS
Cross-AZ: La ralentización del tráfico incluye https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#task-network-packet-loss aws:ecs:task-network-packet-loss para reducir la pérdida de paquetes en las tareas de ECS. La acción se centra en las tareas de la zona de disponibilidad seleccionada y dificulta su comunicación saliente con todas las demás zonas de disponibilidad de la región. Puede personalizar aún más el alcance del impacto editando la acción y añadiendo o eliminando zonas de disponibilidad del Sources campo. De forma predeterminada, se dirige a las tareas con una etiqueta cuyo nombre CrossAZTrafficSlowdown tiene un valor dePacketLossForECS. Puedes reemplazar la etiqueta predeterminada por la tuya propia o añadir la etiqueta de escenario a tus tareas. Si no se encuentra ninguna tarea válida, se omitirá esta acción. Antes de ejecutar un experimento en ECS, debe seguir los pasos de configuración para las acciones de las tareas de ECS.
Pérdida de paquetes de red EKS
Cross-AZ: La ralentización del tráfico incluye https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#pod-network-packet-loss aws:eks:pod-network-packet-loss para reducir la pérdida de paquetes en los pods de EKS. La acción se dirige a los pods de la zona de disponibilidad seleccionada y dificulta su comunicación saliente con todas las demás zonas de disponibilidad de la región. Puedes personalizar aún más el alcance del impacto editando la acción y añadiendo o eliminando zonas habitacionales del Sources campo. De forma predeterminada, se dirige a los pods de un clúster que tienen etiquetas con el formato key=value. La etiqueta predeterminada que se proporciona es. CrossAZTraffic=PacketLossForEKS Puedes reemplazar la etiqueta predeterminada por la tuya propia o añadir esta etiqueta a tus pods. Si no se encuentra ningún pod válido, se omitirá esta acción. Antes de ejecutar un experimento en EKS, debe seguir los pasos de configuración de las acciones del pod de EKS.
Pérdida de paquetes de red EC2
Cross-AZ: Traffic Slowdown utiliza la acción aws:ssm:send-command para ejecutar el AWSFIS-Run-Network-Packet-Loss-Sources documento con el fin de reducir la pérdida de paquetes en las instancias de EC2 y obstaculizar su comunicación saliente con todas las demás zonas de disponibilidad de la región. Puede personalizar aún más el alcance del impacto editando la acción y añadiendo o eliminando las AZ del campo. Sources La acción se dirige a las instancias de la AZ seleccionada. De forma predeterminada, se dirige a las instancias con una etiqueta cuyo nombre CrossAZTrafficSlowdown tiene un valor dePacketLossForEC2. Puedes reemplazar la etiqueta predeterminada por la tuya propia o agregar esta etiqueta a tus instancias. Si no se encuentran instancias válidas, se omitirá esta acción. Antes de ejecutar un experimento en EC2 con SSM, debe configurar el agente de AWS Systems Manager.
Limitaciones
-
Este escenario no incluye condiciones de parada. Deben agregarse a la plantilla de experimento las condiciones de parada correctas para su aplicación.
Requisitos
-
Añada los permisos necesarios a la función de experimento de AWS FIS.
-
Debe seleccionar uno o más recursos de cualquiera de los tres tipos siguientes en la zona de disponibilidad seleccionada: instancias EC2, tareas de ECS o pods de EKS.
-
Todos los objetivos del escenario deben estar en la misma VPC.
Permisos
Para ejecutar este escenario, necesita un rol de IAM con una política de confianza que permita a FIS asumir el rol y las políticas administradas para los tipos de recursos a los que se dirige el experimento: EC2, ECS y EKS. Cuando crea una plantilla de experimento a partir del escenario de ralentización del tráfico, FIS crea el rol automáticamente con la política de confianza y las siguientes políticas administradas por AWS Cross-AZ:
Si está utilizando una función de IAM existente para ejecutar el escenario de ralentización del tráfico, puede adjuntar la siguiente política para conceder a AWS FIS los permisos necesarios Cross-AZ:
{ "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": "*" } ] }
Contenido del escenario
El siguiente contenido define el escenario. Este JSON se puede guardar y usar para crear una plantilla de experimento mediante el comando 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" } ] }