Descubrimiento de servicios - Automatización de las conexiones entre microservicios con AWS Cloud Map

Este artículo explica cómo construir el descubrimiento de servicios con AWS Cloud Map. Presenta el descubrimiento de servicios basado en DNS y basado en API, la integración con ECS/EKS y el trabajo conjunto con App Mesh (AWS finalizó el soporte de App Mesh el 30 de septiembre de 2026).

Los desafíos del descubrimiento de servicios

En una arquitectura de microservicios, cómo resolver los destinos de comunicación entre servicios es un desafío importante. En una aplicación monolítica, los destinos de comunicación son fijos, pero en los microservicios las direcciones IP cambian de forma dinámica por el inicio / la detención de contenedores, Auto Scaling y los despliegues. También existe el método de colocar un balanceador de carga (ALB) delante de cada servicio, pero a medida que aumenta el número de servicios, crecen el coste y la complejidad de la gestión. AWS Cloud Map es un servicio de descubrimiento de servicios que gestiona de forma centralizada los endpoints de los microservicios en espacios de nombres. Registra las instancias de cada servicio (dirección IP, puerto, atributos personalizados) en un registro, y los demás servicios pueden buscar el destino de conexión por su nombre. Ofrece dos métodos de descubrimiento, basado en DNS y basado en API, y se puede elegir según el caso de uso.

Registro de espacios de nombres y servicios

Cloud Map gestiona los recursos en una estructura de tres capas: espacio de nombres (Namespace) → servicio (Service) → instancia (Instance). Hay dos tipos de espacios de nombres: basados en DNS (DNS público o DNS privado) y basados en API (HTTP). En un espacio de nombres DNS, los nombres de los servicios se registran como registros DNS, y se puede resolver el destino de conexión con consultas DNS estándar. Por ejemplo, se puede obtener la dirección IP del servicio payment con el nombre DNS payment.myapp.local. En un espacio de nombres API, se buscan servicios con la API DiscoverInstances, y es posible filtrar por atributos personalizados (versión, entorno, región, etc.).

# Crear un espacio de nombres DNS privado
aws servicediscovery create-private-dns-namespace \
  --name myapp.local \
  --vpc vpc-12345 \
  --region ap-northeast-1

# Registrar el servicio
aws servicediscovery create-service \
  --name payment \
  --namespace-id ns-xxxx \
  --dns-config '{"DnsRecords":[{"Type":"A","TTL":10}]}'

El registro / la baja de instancias se realiza de forma manual (llamadas a la API) o automáticamente mediante la integración con ECS/EKS.

Integración con ECS y health checks

Con la integración nativa entre Cloud Map y ECS, cuando se inicia una tarea de un servicio de ECS, la instancia se registra automáticamente en Cloud Map, y cuando la tarea se detiene, se da de baja automáticamente. La integración se completa con solo especificar serviceRegistries en la definición del servicio de ECS. Esto permite que los servicios resuelvan directamente la dirección IP de las tareas con el nombre DNS de Cloud Map y se comuniquen entre sí sin pasar por un ALB. Se puede reducir el coste del ALB (desde unos 22 USD al mes por unidad), y la latencia también disminuye (a fecha de agosto de 2026). Se admiten dos tipos de health checks. Los health checks de Route 53 ejecutan health checks HTTP/HTTPS/TCP sobre las instancias que tienen una IP pública. Los health checks personalizados informan del estado de salud llamando a la API UpdateInstanceCustomHealthStatus desde el lado de la aplicación. En el caso de la integración con ECS, como está vinculada a los health checks de las tareas de ECS, normalmente no es necesario configurar health checks adicionales.

Trabajo conjunto con App Mesh y precios

AWS App Mesh (una malla de servicios) usaba Cloud Map como backend de descubrimiento de servicios. Sin embargo, AWS finalizó el soporte de App Mesh el 30 de septiembre de 2026 (después de esa fecha no se puede acceder a la consola ni a los recursos de App Mesh). Al asociar un servicio de Cloud Map a un servicio virtual de App Mesh, el proxy Envoy obtenía automáticamente los endpoints de Cloud Map y aplicaba funciones de malla como el enrutamiento del tráfico, los reintentos y los circuit breakers. En entornos de EKS, se puede usar AWS Cloud Map Controller for Kubernetes para sincronizar automáticamente los recursos Service de Kubernetes con Cloud Map. El precio es de 0.10 USD al mes por espacio de nombres, 0.10 USD por cada 1,000 registros de instancias y 1.00 USD por cada millón de consultas a la API DiscoverInstances. A las consultas DNS se les aplica el precio de Route 53 (0.40 USD por cada millón de consultas). En entornos de microservicios de pequeña a mediana escala, se puede usar por unos pocos dólares al mes.

Elección entre el método basado en DNS y el basado en API

El descubrimiento de servicios de Cloud Map tiene un método que resuelve los nombres con DNS y un método que obtiene la lista de servicios con una API. El método DNS tiene la ventaja de ser fácil de adoptar sin cambiar el código, ya que las aplicaciones existentes pueden seguir usando su mecanismo de acceso por nombre de host. Por otro lado, el método API permite filtrar por los atributos personalizados asignados a los servicios, por lo que es posible un control más detallado, como elegir el destino de conexión según condiciones como la versión o el entorno. El método se elige según cómo está construida la aplicación y el nivel de detalle del control que se busca. Entender las características de ambos y usar cada uno de forma adecuada conduce a un diseño eficaz del descubrimiento de servicios.

Práctica en entornos dinámicos

En los microservicios, las instancias aumentan y disminuyen con frecuencia por el escalado automático. Como Cloud Map puede automatizar el registro / la baja de servicios en sincronía con el inicio / la detención de los contenedores, puede mantener siempre los destinos de conexión más recientes incluso en estos entornos dinámicos. Los clientes lo combinan con el balanceo de carga para distribuir la comunicación a las instancias en buen estado. Incluso en situaciones como el cambio gradual a una nueva versión, se puede gestionar la migración del tráfico controlando las instancias que se registran. En entornos donde las instancias cambian a un ritmo vertiginoso, un mecanismo que hace que los destinos de conexión se actualicen automáticamente sostiene una comunicación estable entre servicios.

Resumen - Pautas para aprovechar Cloud Map

AWS Cloud Map es un servicio de descubrimiento de servicios que gestiona de forma centralizada los endpoints de los microservicios. Sus principales puntos fuertes son los dos métodos de descubrimiento, basado en DNS y basado en API, la integración nativa con ECS y la exclusión automática de las instancias en mal estado mediante health checks. Cuando se operan microservicios en ECS, al adoptar Cloud Map en lugar de usar un ALB para la comunicación entre servicios, se puede lograr una reducción de costes y una menor latencia.

Referencias (recursos oficiales de AWS)

Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.

Si esta página y la documentación oficial difieren, prevalece la documentación oficial.

Compartir