AWS App Mesh のアイコン

AWS App Mesh Specialized2018年〜

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.

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. Se recomienda comenzar con 2-3 servicios.

Aspectos a tener en cuenta

  • App Mesh itself is free, but the Envoy sidecar container requires additional ECS/EKS compute resources
  • Introducing a service mesh adds operational complexity, so it may be overkill when you have few services. Consider adopting it only when communication management becomes a challenge
  • Use the Envoy proxy version recommended by App Mesh. Incompatible versions may not function correctly
共有するXB!