Attribution d'un nom de domaine à une tâche AWS Fargate

12

J'ai une tâche AWS Fargate exécutant une application Web dans un sous-réseau public afin qu'elle ait une adresse publique. Ma question est de savoir comment connecter un domaine (via Route 53) à cette tâche, afin que rien ne se brise lorsque j'en déploie une nouvelle version.

  • Je sais que je peux utiliser ALB / NLB mais je veux économiser sur les coûts.
  • Je ne veux pas utiliser l'adresse IP publique directement car elle peut changer.
  • Je suppose que la solution doit faire quelque chose avec l'ENI, mais je ne sais pas comment la signaler via la Route 53.

Toute aide serait très appréciée.

Merci

Leo
la source

Réponses:

6

Dans la plupart des cas, vous souhaiterez probablement utiliser un ALB / NLB pour la découverte de service. Bien qu'il y ait des coûts, vous obtenez également de nombreux avantages: une protection DoS, des mesures de mise à l'échelle, la journalisation, SSL / TLS

Cependant, vous pouvez utiliser la découverte de services ECS .

La découverte de service utilise des actions d'API de nommage automatique Amazon Route 53 pour gérer les entrées DNS pour les tâches de votre service, ce qui les rend détectables dans votre VPC

et

Les espaces de noms publics sont pris en charge, mais vous devez avoir une zone hébergée publique existante enregistrée auprès de Route 53 avant de créer votre service de découverte de service.

La découverte de service nécessite que les tâches utilisent le mode awsvpc, bridge ou réseau hôte.

Voici une entrée de blog détaillant comment utiliser la découverte de services avec fargate: https://aws.amazon.com/blogs/aws/amazon-ecs-service-discovery/

M. Glatki
la source
0

J'ai essayé de. Le problème est que l'IP publique utilisée par Fargate est attachée à la TÂCHE, donc si la tâche est redémarrée, une nouvelle adresse IP est donnée et l'enregistrement DNS doit être mis à jour. C'est pourquoi l'alb / nlb est utilisé.

En théorie, vous pourriez utiliser autre chose pour gérer les enregistrements d'hôtes DNS, peut-être une fonction lambda ou quelque chose

Considérations sur la découverte de service: les enregistrements DNS créés pour un service de découverte de service s'inscrivent toujours avec l'adresse IP privée de la tâche, plutôt qu'avec l'adresse IP publique, même lorsque des espaces de noms publics sont utilisés.

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

oneklc
la source
0

Comme indiqué dans le guide du développeur ECS :

Amazon ECS ne prend pas en charge l'enregistrement de services dans des espaces de noms DNS publics

Donc, aucune chance pour l'enregistrement du domaine public prêt à l'emploi via ECS Service Discovery. Mais ce que vous pouvez faire, c'est d'utiliser AWS SKD pour récupérer l'adresse IP publique de votre conteneur après le déploiement et l'enregistrer dans votre zone hébergée publique Route 53.

Cet article montre une approche utilisant une fonction lambda pour faire exactement cela chaque fois que votre conteneur est redéployé.

Andreas Pasch
la source