Asignación de un nombre de dominio a una tarea de AWS Fargate

12

Tengo una tarea de AWS Fargate que ejecuta una aplicación web en una subred pública, por lo que tiene una dirección pública. Mi pregunta es cómo puedo conectar un dominio (a través de la ruta 53) a esa tarea, de modo que nada se rompa cuando implemente una nueva versión.

  • Sé que puedo usar ALB / NLB pero quiero ahorrar en costos.
  • No quiero usar la IP pública directamente, ya que puede cambiar.
  • Supongo que la solución tiene que ver con el ENI, pero no estoy seguro de cómo señalarlo a través de la ruta 53.

Cualquier ayuda sería muy apreciada.

Gracias

León
fuente

Respuestas:

6

Para la mayoría de los casos, lo más probable es que desee utilizar un ALB / NLB para el descubrimiento de servicios. Si bien hay algunos costos, también obtiene muchos beneficios: cierta protección DoS, métricas de escala, registro, SSL / TLS

Sin embargo, puede usar el descubrimiento de servicios ECS .

El descubrimiento de servicios utiliza acciones de API de nomenclatura automática de Amazon Route 53 para administrar entradas de DNS para las tareas de su servicio, haciéndolas detectables dentro de su VPC

y

Los espacios de nombres públicos son compatibles, pero debe tener una zona alojada pública existente registrada en Route 53 antes de crear su servicio de descubrimiento de servicios.

El descubrimiento de servicios requiere que las tareas utilicen el modo de red awsvpc, bridge o host.

Aquí hay una entrada de blog que detalla cómo usar el descubrimiento de servicios con fargate: https://aws.amazon.com/blogs/aws/amazon-ecs-service-discovery/

M. Glatki
fuente
0

Lo intenté. El problema es que la IP pública que usa Fargate se adjunta a la TAREA, por lo que si se reinicia la tarea, se proporciona una nueva dirección IP y el registro DNS debe actualizarse. Por eso se usa alb / nlb.

En teoría, podría usar algo más para administrar los registros de host dns, tal vez una función lambda o algo

Consideraciones de descubrimiento de servicio: los registros DNS creados para un servicio de descubrimiento de servicio siempre se registran con la dirección IP privada para la tarea, en lugar de la dirección IP pública, incluso cuando se utilizan espacios de nombres públicos.

https://forums.aws.amazon.com/thread.jspa?threadID=270599

oneklc
fuente
0

Como se indica en la guía del desarrollador de ECS :

Amazon ECS no admite el registro de servicios en espacios de nombres DNS públicos

Por lo tanto, no hay posibilidad de registro de dominio público listo para usar a través de ECS Service Discovery. Pero lo que puede hacer es usar AWS SKD para obtener la dirección IP pública de su contenedor después de la implementación y registrarla en su zona alojada de la Ruta 53 pública.

Este artículo muestra un enfoque que utiliza una función lambda para hacer exactamente eso cada vez que se vuelve a implementar su contenedor.

Andreas Pasch
fuente