AWS App Mesh icono

AWS App Mesh Descontinuación previstadesde 2018

Una malla de servicios que controla y monitorea la comunicación entre microservicios

Qué hace

AWS App Mesh es una malla de servicios que controla y monitorea de forma centralizada la comunicación de red entre microservicios. Coloca un proxy sidecar (Envoy) junto a cada servicio, habilitando enrutamiento de tráfico, reintentos, tiempos de espera y circuit breakers sin modificar el código de la aplicación. Soporta servicios que se ejecutan en ECS, EKS y EC2. Cabe señalar que App Mesh cerró el acceso a nuevos usos el 24 de septiembre de 2024 y está previsto que su soporte finalice el 30 de septiembre de 2026. Como destino de migración, AWS señala oficialmente Amazon ECS Service Connect.

Casos de uso

App Mesh se utiliza para visualizar la comunicación entre servicios en arquitecturas de microservicios, despliegues canary (cambio gradual de tráfico a nuevas versiones) y control automático de reintentos y fallback durante fallos. Es especialmente efectivo en entornos donde el número de servicios ha crecido y la gestión de comunicaciones se ha vuelto compleja.

Analogía cotidiana

Imagínalo como una torre de control de aeropuerto. Cuando numerosas aeronaves (microservicios) van y vienen, la torre de control (App Mesh) rastrea todas las rutas de vuelo (comunicaciones) y dirige rutas seguras. Durante mal tiempo (fallos), también guía a las aeronaves hacia rutas alternativas (reintentos/fallbacks) para prevenir colisiones (fallos de comunicación).

¿Qué es App Mesh?

AWS App Mesh es una malla de servicios para gestionar la comunicación entre microservicios. En una arquitectura de microservicios, muchos servicios pequeños colaboran a través de la red. A medida que crece el número de servicios, controlar la comunicación y manejar los fallos se vuelve complejo. App Mesh gestiona centralmente toda la comunicación entre servicios, proporcionando enrutamiento unificado, monitoreo y manejo de fallos.

Control de comunicación con Envoy Proxy

App Mesh coloca un proxy Envoy como sidecar junto a cada servicio. Como toda la comunicación entre servicios pasa a través de este proxy Envoy, puedes agregar controles de comunicación sin cambiar el código de la aplicación. El número de reintentos, la duración de los tiempos de espera y la configuración de health checks se pueden gestionar centralmente desde la consola o API de App Mesh, eliminando la necesidad de implementación por servicio.

Enrutamiento de tráfico

Las funciones de enrutamiento de App Mesh te permiten controlar de forma flexible la distribución del tráfico. Por ejemplo, puedes ejecutar despliegues canary que envían solo el 10% del tráfico a una nueva versión del servicio, o realizar pruebas A/B que enrutan a versiones específicas basándose en valores de encabezados HTTP. Si ocurren problemas, puedes redirigir inmediatamente el tráfico a la versión anterior. Para profundizar tu comprensión del enrutamiento de tráfico, libros relacionados en Amazon también son útiles.

Cómo empezar

En la consola de App Mesh, crea una malla y define servicios virtuales, nodos virtuales y routers virtuales. Agrega un contenedor sidecar Envoy a tu definición de tarea de ECS e intégralo con App Mesh. Integra con CloudWatch y X-Ray para visualizar métricas y trazas de la comunicación entre servicios. Ahora bien, dado que está previsto que el soporte de App Mesh finalice el 30 de septiembre de 2026, para nuevas adopciones de malla de servicios conviene considerar alternativas sucesoras como Amazon ECS Service Connect.

Aspectos a tener en cuenta

  • App Mesh en sí es gratuito, pero el contenedor sidecar de Envoy requiere recursos de cómputo adicionales de ECS/EKS
  • Introducir una malla de servicios aumenta la complejidad operativa, por lo que puede ser excesivo cuando hay pocos servicios. Conviene considerar su adopción solo cuando la gestión de la comunicación se convierta en un problema
  • Use la versión del proxy Envoy recomendada por App Mesh. Las versiones incompatibles pueden no funcionar correctamente
CompartirXB!