Enrutamiento con reconocimiento de zonas de Amazon ECS Service Connect
Con el enrutamiento con reconocimiento de zonas de Amazon ECS Service Connect, el tráfico permanece dentro de la misma zona de disponibilidad (AZ) que el cliente. Esto reduce los costos y la latencia de la transferencia de datos entre zonas de disponibilidad sin requerir cambios adicionales en la infraestructura ni el código de la aplicación. Cuando los puntos de conexión están equilibrados en las zonas de disponibilidad, más del 80 % del tráfico permanece en la infraestructura local, mientras que las ponderaciones de tráfico se ajustan dinámicamente a medida que los puntos de conexión se escalan para mantener una carga equilibrada en todos los servicios de destino. El enrutamiento con reconocimiento de zonas está habilitado de forma predeterminada para todos los servicios nuevos y actuales que utilizan Service Connect.
Cómo funciona el enrutamiento con reconocimiento de zonas
El algoritmo utiliza la función de enrutamiento con reconocimiento de zonas de Envoy en el proxy de Service Connect para enrutar el tráfico en función de la localidad del punto de conexión:
-
Detección de los puntos de conexión: el proxy detecta todos los puntos de conexión disponibles para el servicio de destino y su ubicación en la zona de disponibilidad.
-
Priorización en la misma zona de disponibilidad: el proxy calcula qué porcentaje del tráfico permanece en la misma zona de disponibilidad en función de la relación de distribución de los puntos de conexión entre las zonas de disponibilidad de origen (cliente) y de destino (servidor). Cuando los puntos de conexión se distribuyen uniformemente entre las zonas, el tráfico en la misma zona de disponibilidad suele superar el 80 %.
-
Enrutamiento de capacidad residual: el tráfico que no puede permanecer en la misma zona de disponibilidad se distribuye a otras zonas de disponibilidad en función de su capacidad residual. El proxy calcula la capacidad residual de cada zona y divide el tráfico entre zonas de disponibilidad en las zonas con una capacidad residual positiva de manera proporcional. A medida que los puntos de conexión se escalan o reducen verticalmente, el proxy vuelve a calcular las ponderaciones de enrutamiento en tiempo real.
-
Protección contra sobrecargas y respaldo: para evitar la sobrecarga de una única zona de disponibilidad, el proxy necesita al menos dos veces el número de zonas de disponibilidad como puntos de conexión disponibles en el servicio de destino. Para una región de tres zonas de disponibilidad, esto significa al menos seis puntos de conexión. Por debajo de este umbral, el enrutamiento con reconocimiento de zonas se desactiva y el tráfico se distribuye de manera uniforme mediante el equilibrio de carga por turnos. El enrutamiento se reactiva automáticamente cuando el número de puntos de conexión supera el umbral. Si los puntos de conexión de la misma zona de disponibilidad dejan de estar disponibles, el tráfico se redistribuye entre las demás zonas para mantener la disponibilidad.
Verificación del enrutamiento con reconocimiento de zonas en Amazon EC2
En las instancias de contenedor de Amazon EC2 que utilizan el tiempo de ejecución de Docker, puede inspeccionar las estadísticas del proxy de Envoy dentro del contenedor del agente de Service Connect para confirmar que el enrutamiento con reconocimiento de zonas está activo. Las instancias de contenedor deben usar una versión AMI optimizada para ECS 20260323 o posterior. Este procedimiento requiere acceso al host del administrador de sesiones de AWS Systems Manager y docker exec. Para AWS Fargate o las instancias de contenedores que utilizan containerd, utilice registros de flujo de Amazon Virtual Private Cloud para verificar el comportamiento de enrutamiento tal y como se describe en Supervisión del enrutamiento con reconocimiento de zonas.
Para verificar el enrutamiento con reconocimiento de zonas en Amazon EC2 con Docker:
-
Conéctese a la instancia de contenedor con el administrador de sesiones de AWS Systems Manager. Sustituya
instance-idpor su ID de instancia de contenedor.aws ssm start-session --targetinstance-id -
Abra un shell en el contenedor del agente de Service Connect.
sudo docker exec -it $(sudo docker ps --filter "name=ecs-service-connect" -q | head -1) /bin/sh -
Consulte las estadísticas del enrutamiento de zonas desde la interfaz de administración de Envoy.
curl --unix-socket /tmp/envoy_admin.sock http://unix/stats | grep "lb_zone" -
Verifique el resultado. Una implementación en buen estado con el enrutamiento con reconocimiento de zonas activo no muestra ninguna solicitud entre zonas:
cluster.my-service.lb_zone_routing_cross_zone: 0 cluster.my-service.lb_zone_cluster_too_small: 0
La tabla siguiente describe las métricas clave del enrutamiento de zonas.
| Métrica | Descripción |
|---|---|
lb_zone_routing_cross_zone |
Número de solicitudes enrutadas a un punto de conexión en una zona de disponibilidad diferente. Un valor sostenido de 0 confirma que todo el tráfico permanece dentro de la misma zona de disponibilidad. |
lb_zone_cluster_too_small |
Número de veces que se omitió el enrutamiento con reconocimiento de zonas porque el recuento de puntos de conexión estaba por debajo del umbral mínimo. Se esperan valores distintos de cero durante la implementación inicial y se resuelven a medida que los puntos de conexión estén en buen estado. Una implementación estable muestra 0. |
Supervisión del enrutamiento con reconocimiento de zonas
Utilice los flujos de registro de Amazon Virtual Private Cloud con el campo az-id para observar los patrones de tráfico de la red. Esto indica en qué zona de disponibilidad se origina y en qué zona de disponibilidad termina cada registro de flujo, lo que le permite medir las relaciones de tráfico dentro de la misma zona de disponibilidad en comparación con el tráfico entre zonas de disponibilidad. También puede usar el explorador de costos de AWS para realizar un seguimiento de los cargos por transferencia de datos entre zonas de disponibilidad antes y después de volver a implementar sus servicios para habilitar el enrutamiento con reconocimiento de zonas.
Para obtener más información sobre la configuración de los registros de flujo, consulte Registros de flujo de la VPC en la Guía del usuario de Amazon Virtual Private Cloud.
Consideraciones
Tenga en cuenta lo siguiente cuando utilice el enrutamiento con reconocimiento de zonas:
-
El enrutamiento con reconocimiento de zonas funciona con todos los tipos de lanzamiento.
-
El enrutamiento con reconocimiento de zonas es compatible con los espacios de nombres de Service Connect entre cuentas compartidos mediante AWS Resource Access Manager.
-
Los servicios actuales (tanto de cliente como de servidor) requieren una reimplementación única para activar el enrutamiento con reconocimiento de zonas. Tras la reimplementación inicial, el enrutamiento se ajusta dinámicamente a medida que cambian los puntos de conexión sin necesidad de realizar más reimplementaciones.
-
En el caso del tipo de lanzamiento de Amazon EC2, las instancias de contenedor deben utilizar una versión AMI optimizada para Amazon ECS
20260323o posterior.