AWS Cloud Map Especializado2018年〜
Un servicio que proporciona descubrimiento de servicios para recursos de aplicaciones
Qué hace
AWS Cloud Map es un servicio de descubrimiento de servicios que gestiona de forma centralizada la ubicación (direcciones IP, URLs, etc.) de los servicios y recursos que componen una aplicación, permitiendo buscarlos por nombre. En arquitecturas de microservicios, permite que cada servicio descubra dinámicamente las direcciones de conexión de los demás. Soporta dos métodos de descubrimiento: basado en DNS y basado en API.
Casos de uso
Se utiliza en arquitecturas de microservicios para resolver dinámicamente los destinos de comunicación entre servicios. Por ejemplo, cuando los contenedores en ECS o EKS escalan hacia arriba o abajo, la información de conexión se actualiza automáticamente para que otros servicios siempre obtengan los destinos correctos. También se usa como registro de servicios unificado que incluye recursos no contenedorizados como funciones Lambda y bases de datos.
Analogía cotidiana
Piensa en él como un directorio telefónico de la empresa. En una empresa grande, los empleados se transfieren y se crean nuevos departamentos. Cloud Map es un directorio telefónico que siempre se mantiene actualizado; si buscas "Tanaka del departamento de ventas", obtienes inmediatamente su extensión actual (dirección IP). Aunque un empleado cambie de escritorio, el directorio se actualiza automáticamente, así que no hay riesgo de llamar a un número antiguo.
¿Qué es Cloud Map?
AWS Cloud Map es un servicio de descubrimiento de servicios para gestionar y buscar recursos de aplicaciones en la nube por nombre. En microservicios, muchos servicios pequeños se comunican entre sí, pero los destinos de conexión (direcciones IP y números de puerto) de cada servicio cambian con cada escalado o despliegue. Cloud Map gestiona centralmente esta información de conexión y devuelve los destinos más recientes con solo consultar por nombre de servicio.
Descubrimiento basado en DNS y basado en API
Cloud Map ofrece dos métodos de descubrimiento. El descubrimiento basado en DNS registra nombres de servicio como nombres DNS y resuelve destinos mediante consultas DNS estándar. Tiene la ventaja de poder implementarse sin modificar aplicaciones existentes. El descubrimiento basado en API obtiene destinos usando el SDK de AWS. Puede obtener no solo direcciones IP sino también números de puerto y atributos personalizados (como información de versión), permitiendo un enrutamiento más flexible.
Integración con ECS y EKS
Cloud Map está integrado con Amazon ECS y Amazon EKS, registrando y eliminando automáticamente instancias de servicio durante el despliegue de contenedores. Por ejemplo, cuando un servicio ECS escala de 3 a 5 tareas, las direcciones IP de las 2 nuevas tareas se registran automáticamente en Cloud Map. Cuando las tareas se detienen, el registro se elimina automáticamente, sin necesidad de mantenimiento manual. Para profundizar en el conocimiento práctico de la integración con ECS y EKS, los libros en Amazon son útiles.
Cómo empezar
Para comenzar con Cloud Map, primero crea un namespace. Puedes elegir entre basado en DNS o basado en API. Luego, crea servicios dentro del namespace y registra instancias de servicio (la información de conexión de los recursos reales). Si usas ECS, simplemente habilita la integración con Cloud Map en la definición del servicio para automatizar el registro y eliminación de tareas.
Aspectos a tener en cuenta
- DNS ベースのディスカバリは DNS キャッシュの TTL に依存するため、接続先の変更が即座に反映されない場合がある。リアルタイム性が必要な場合は API ベースを検討すること
- Cloud Map のヘルスチェック機能を有効にすると、異常なインスタンスを自動的にディスカバリ結果から除外できる
- 名前空間の種類 (DNS パブリック、DNS プライベート、API のみ) は作成後に変更できないため、用途に合った種類を事前に選択すること