Zuweisen eines Domänennamens zu einer AWS Fargate-Aufgabe

11

Ich habe eine AWS Fargate-Aufgabe, bei der eine Web-App in einem öffentlichen Subnetz ausgeführt wird, sodass sie eine öffentliche Adresse hat. Meine Frage ist, wie ich eine Domäne (über Route 53) mit dieser Aufgabe verbinden kann, damit beim Bereitstellen einer neuen Version nichts kaputt geht.

  • Ich weiß, dass ich ALB / NLB verwenden kann, aber ich möchte Kosten sparen.
  • Ich möchte die öffentliche IP nicht direkt verwenden, da sie sich ändern kann.
  • Ich gehe davon aus, dass die Lösung etwas mit dem ENI zu tun hat, bin mir aber nicht sicher, wie ich über Route 53 darauf verweisen soll.

Jede Hilfe wäre sehr dankbar.

Vielen Dank

Löwe
quelle

Antworten:

6

In den meisten Fällen möchten Sie höchstwahrscheinlich eine ALB / NLB für die Serviceerkennung verwenden. Es gibt zwar einige Kosten, aber auch viele Vorteile: DoS-Schutz, Skalierungsmetriken, Protokollierung, SSL / TLS

Sie können jedoch die ECS-Diensterkennung verwenden .

Die Diensterkennung verwendet API-Aktionen für die automatische Benennung von Amazon Route 53, um DNS-Einträge für die Aufgaben Ihres Dienstes zu verwalten und sie in Ihrer VPC erkennbar zu machen

und

Öffentliche Namespaces werden unterstützt, Sie müssen jedoch eine vorhandene öffentlich gehostete Zone bei Route 53 registriert haben, bevor Sie Ihren Service Discovery Service erstellen.

Für die Diensterkennung müssen Aufgaben entweder den awsvpc-, den Bridge- oder den Host-Netzwerkmodus verwenden.

Hier ist ein Blogeintrag, in dem die Verwendung der Serviceerkennung mit fargate beschrieben wird: https://aws.amazon.com/blogs/aws/amazon-ecs-service-discovery/

M. Glatki
quelle
0

Ich versuchte zu. Das Problem ist, dass die öffentliche IP, die Fargate verwendet, an die AUFGABE angehängt ist. Wenn die Aufgabe neu gestartet wird, wird eine neue IP-Adresse angegeben und der DNS-Datensatz muss aktualisiert werden. Deshalb wird das alb / nlb verwendet.

Theoretisch könnten Sie etwas anderes verwenden, um die DNS-Host-Datensätze zu verwalten, vielleicht eine Lambda-Funktion oder so

Überlegungen zur Diensterkennung: Die für einen Diensterkennungsdienst erstellten DNS-Einträge registrieren sich immer mit der privaten IP-Adresse für die Aufgabe und nicht mit der öffentlichen IP-Adresse, selbst wenn öffentliche Namespaces verwendet werden.

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

oneklc
quelle
0

Wie im ECS-Entwicklerhandbuch angegeben :

Amazon ECS unterstützt die Registrierung von Diensten in öffentlichen DNS-Namespaces nicht

Keine Chance für eine sofort einsatzbereite Public Domain-Registrierung über ECS Service Discovery. Sie können jedoch AWS SKD verwenden, um die öffentliche IP-Adresse Ihres Containers nach der Bereitstellung abzurufen und in Ihrer öffentlichen gehosteten Route 53-Zone zu registrieren.

Dieser Artikel zeigt einen Ansatz, bei dem eine Lambda-Funktion verwendet wird, um genau das zu tun, wenn Ihr Container erneut bereitgestellt wird.

Andreas Pasch
quelle