News

Neues Plugin soll Docker und AWS näher zusammenbringen

Bild: Sheila Fitzgerald/Shutterstock

Lesezeit: 2 Min. Gerade keine Zeit? Jetzt speichern und später lesen

Die Container-Virtualisierungssoftware Docker soll bald nativ mit den AWS-Services AWS Fargate und AWS Elastic Container Service nutzbar sein. Möglich wird das über ein neues CLI-Plugin.

Die Container-Virtualisierungssoftware Docker soll über das neue ECS-Plugin besser mit den AWS-Services AWS Fargate und AWS Elastic Container zusammenspielen, so der zugehörige Blogpost auf dem Docker-Blog. Mit der Neuerung wird die Notwendigkeit der Erstellung separater AWS-ECS-Ressourcen wie zum Beispiel VPC, ECS-Cluster und sogenannte ECS-Task-Definitionen eliminiert.

Nix mehr verpassen: Die t3n Newsletter zu deinen Lieblingsthemen! Jetzt anmelden

Ein Command soll künftig reichen

Steuern lässt sich die ECS-Integration über den Root-Command ecs. Die Ausführung des Commands docker ecs compose up beispielsweise erstellt die Applikation und alle benötigten Ressourcen innerhalb der AWS-Umgebung wie in der compose.yaml-Datei definiert. Für das ECS-Docker-Plugin muss ein AWS-Profil eingerichtet werden, aus dem die erforderlichen AWS-API-Zugangsdaten ausgewählt werden können. Über docker ecs setup können AWS-Profil und -Region innerhalb der Docker-Umgebung gespeichert werden: Das ECS-Plugin parst die compose.yaml-Datei und konvertiert sie in ein Cloud-Formation-Template. Über das Template werden dann alle in der compose.yaml definierten Ressourcen erstellt. Im Idealfall müssen Entwickler also künftig nur noch den ECS-Command ausführen, damit in Cloudformation alles Nötige für den Betrieb des Docker-Containers vorbereitet wird. Zur Bereinigung von Ressourcen dient der down-Command, im Fall eines fehlgeschlagenen Deployments werden diese automatisch bereinigt.

Das passiert im Detail

Die ECS-Integration führt vier Schritte aus. Während der Ladephase wird die compose.yaml über die Go-Reference-Library compose-go geladen und geparst. Im nächsten Schritt, der Validierungsphase, werden sogenannte ECS-Defaults in das compose-go-Modell injiziert. Um sicherzustellen, dass sie keine Features enthält, die nicht unterstützt werden, wird in dieser Phase außerdem die compose.yaml überprüft. Während der Konvertierungsphase wird das Cloud-Formation-Template erstellt. Darin definiert sind alle zur Implementation auf AWS benötigten Ressourcen. Im letzten Schritt wird das Cloud-Formation-Template entweder zu einer Stack-Datei exportiert oder auf AWS deployed.

Die Compose-Services der compose.yaml sind währenddessen auf ECS-Services gemappt. Über eine spezielle Compose-Erweiterung (zum Beispiel x-aws-*) wird sichergestellt, dass ECS-Features als Service-Level-Features exponiert werden. Das ist nötig, weil Compose von Haus aus keine Multi-Container-Services wie zum Beispiel kubernetes-pods oder sidecars unterstützt.

Ausgehend von dem Compose-Modell wird die Netzwerkabstaktion in AWS-Security-Groups abgebildet. Die Anwendung wird innerhalb einer einzigen VPC erstellt, wobei pro Compose-Netzwerk eine separate Security-Gruppe erstellt wird, einschließlich der impliziten Standardgruppe. Dienste werden dann entsprechend der Deklaration der Netzwerke im Compose-Modell angehängt. Dienste, die an eine gemeinsame Security-Gruppe angeschlossen sind, können so miteinander kommunizieren. Für jede Anwendung wird zudem ein AWS-Cloud-Map Private Namespace als {project}.local erstellt. Über den AWS-Service können Ressourcen einer Anwendung mit benutzerdefinierten Namen registriert werden. Der Service überprüft die Location der registrierten Ressourcen auf Aktualität.

Final-Release-Date: Ende des Jahres

Der Final Release des Plugins ist für Ende des Jahres angedacht, bis dahin soll das Feature in die Docker-Contexts integriert werden. Contexts bieten einen Weg, Kubernetes-Cluster, Swarm-Cluster und verschiedene einzelne Docker-Nodes über ein einzelnes Docker-CLI zu managen. Um das Plugin jetzt schon zu nutzen, braucht ihr neben einer Docker-ID zudem Docker Desktop Edge in Version 2.3.3.0. Im zugehörigen Repository auf GitHub finden interessierte Entwickler eine Demo-Anwendung. Feedback und Änderungswünsche können wie gehabt über die dem Projekt zugehörige Roadmap eingereicht werden.

 

Passend dazu:

Meistgelesen

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 70 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Luca Caracciolo (Chefredakteur t3n) & das gesamte t3n-Team

Anleitung zur Deaktivierung