Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Stellen Sie mithilfe von AWS Copilot eine geclusterte Anwendung in Amazon ECS bereit
Erstellt von Jean-Baptiste Guillois (AWS), Mathew George (AWS) und Thomas Scott (AWS)
Übersicht
Dieses Muster zeigt, wie Container in einem Amazon Elastic Container Service (Amazon ECS) -Cluster auf zwei Arten bereitgestellt werden können — mithilfe der Amazon Web Services (AWS) Management Console und mithilfe von AWS Copilot — um zu demonstrieren, wie AWS Copilot Bereitstellungsaufgaben vereinfacht.
Amazon ECS ist ein hoch skalierbarer, schneller Container-Management-Service, der es einfach macht, Container in einem Cluster auszuführen, zu stoppen und zu verwalten. Ihre Container sind in einer Aufgabendefinition definiert, die Sie zum Ausführen einzelner Aufgaben oder Aufgaben innerhalb eines Dienstes verwenden. Sie können Ihre Aufgaben und Services auf einer serverlosen Infrastruktur ausführen, die von AWS Fargate verwaltet wird. Für mehr Kontrolle über Ihre Infrastruktur können Sie Ihre Aufgaben und Dienste alternativ auf einem Cluster von Amazon Elastic Compute Cloud (Amazon EC2) -Instances ausführen, die Sie verwalten.
Die Befehle der Befehlszeilenschnittstelle (CLI) von AWS Copilot vereinfachen die Erstellung, Veröffentlichung und den Betrieb produktionsreifer containerisierter Anwendungen auf Amazon ECS von einer lokalen Entwicklungsumgebung aus. Die AWS Copilot CLI ist auf Entwickler-Workflows abgestimmt, die bewährte Methoden für moderne Anwendungen unterstützen: von der Verwendung von Infrastruktur als Code bis hin zur Erstellung einer Pipeline für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD), die im Namen eines Benutzers bereitgestellt wird. Sie können die AWS Copilot CLI als Teil Ihres täglichen Entwicklungs- und Testzyklus als Alternative zur AWS-Managementkonsole verwenden.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto
AWS-Befehlszeilenschnittstelle (AWS CLI), lokal installiert und konfiguriert, um Ihr AWS-Konto zu verwenden (siehe die Installations - und Konfigurationsanweisungen in der AWS-CLI-Dokumentation)
Lokal installierter AWS Copilot (siehe Installationsanweisungen in der Amazon ECS-Dokumentation)
Einschränkungen
Docker erzwingt im kostenlosen Tarif Pull-Limits von 100 Container-Images pro 6 Stunden pro IP-Adresse.
Architektur
Zieltechnologie-Stack
AWS-Umgebung, eingerichtet mit einer Virtual Private Cloud (VPC), öffentlichen und privaten Subnetzen und Sicherheitsgruppen
Amazon-ECS-Cluster
Amazon ECS-Service- und Aufgabendefinition
Amazon Elastic Container Registry (Amazon ECR)
Amazon-DynamoDB
Application Load Balancer
AWS Fargate
Amazon Identity and Access Management (IAM)
Amazon CloudWatch
AWS CloudTrail
Zielarchitektur
Wenn Sie die Beispielanwendung für dieses Muster bereitstellen, werden mehrere Aufgaben erstellt und in separaten Availability Zones bereitgestellt. Jede Aufgabe speichert Daten in Amazon DynamoDB. Wenn Sie auf die Webseite für eine Aufgabe zugreifen, können Sie die Daten aller anderen Aufgaben einsehen.

Tools
AWS-Services
Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) ist ein von AWS verwalteter Container-Image-Registry-Service, der sicher, skalierbar und zuverlässig ist. Amazon ECR unterstützt private Container-Image-Repositories mit ressourcenbasierten Berechtigungen unter Verwendung von IAM.
Amazon ECS — Amazon Elastic Container Service (Amazon ECS) ist ein hoch skalierbarer, schneller Container-Management-Service zum Ausführen, Stoppen und Verwalten von Containern in einem Cluster. Sie können Ihre Aufgaben und Services auf einer serverlosen Infrastruktur ausführen, die von AWS Fargate verwaltet wird. Für mehr Kontrolle über Ihre Infrastruktur können Sie Ihre Aufgaben und Dienste alternativ auf einem Cluster von Amazon Elastic Compute Cloud (Amazon EC2) -Instances ausführen, die Sie verwalten.
AWS Copilot — AWS Copilot bietet eine Befehlszeilenschnittstelle, mit der Sie containerisierte Anwendungen auf AWS starten und verwalten können, einschließlich der Übertragung in eine Registrierung, der Erstellung einer Aufgabendefinition und der Erstellung eines Clusters.
AWS Fargate — AWS Fargate ist eine serverlose pay-as-you-go Rechen-Engine, mit der Sie sich auf die Erstellung von Anwendungen konzentrieren können, ohne Server verwalten zu müssen. AWS Fargate ist sowohl mit Amazon ECS als auch mit Amazon Elastic Kubernetes Service (Amazon EKS) kompatibel. Wenn Sie Ihre Amazon-ECS-Aufgaben und -Services mit dem Starttyp Fargate oder einem Fargate-Kapazitätsanbieter ausführen, packen Sie Ihre Anwendung in Container, spezifizieren die CPU- und Arbeitsspeicheranforderungen, definieren Netzwerk- und IAM-Richtlinien und starten die Anwendung. Jede Fargate-Aufgabe hat ihre eigene Isolationsgrenze und teilt den zugrunde liegenden Kernel, die CPU-Ressourcen, Speicherressourcen oder die elastic network interface nicht mit einer anderen Aufgabe.
Amazon DynamoDB — Amazon DynamoDB ist ein vollständig verwalteter NoSQL-Datenbankservice, der schnelle und vorhersehbare Leistung mit nahtloser Skalierbarkeit bietet.
Elastic Load Balancing (ELB) — Elastic Load Balancing verteilt Ihren eingehenden Traffic automatisch auf mehrere Ziele wie EC2 Instances, Container und IP-Adressen in einer oder mehreren Availability Zones. Es überwacht den Zustand der registrierten Ziele und leitet den Datenverkehr nur an die fehlerfreien Ziele weiter. Elastic Load Balancing skaliert Ihren Load Balancer, wenn sich der eingehende Datenverkehr im Laufe der Zeit ändert. Es kann automatisch auf die meisten Workloads skaliert werden.
Tools
Code
Der Code für die in diesem Muster verwendete Beispielanwendung ist im GitHub Cluster-Beispielanwendungs-Repository
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das GitHub Repository. | Klonen Sie das Beispielcode-Repository mit dem folgenden Befehl:
| App-Entwickler, AWS DevOps |
Erstellen Sie Ihr Amazon ECR-Repository. |
Weitere Informationen finden Sie unter Erstellen eines privaten Repositorys in der Amazon ECR-Dokumentation. | App-Entwickler, AWS DevOps |
Erstellen, taggen und übertragen Sie Ihr Docker-Image in Ihr Amazon ECR-Repository. |
So authentifizieren Sie Ihren Docker-Client bei der Registrierung:
Um Ihr Docker-Image zu erstellen:
Um Ihr Docker-Image zu taggen:
Um das Docker-Image in Ihr Repository zu übertragen:
| App-Entwickler, AWS DevOps |
Stellen Sie den Anwendungsstapel bereit. |
Weitere Informationen zum Bereitstellen von CloudFormation Vorlagen finden Sie in der CloudFormation AWS-Dokumentation unter Erstellen eines Stacks. | AWS DevOps, App-Entwickler |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das GitHub Repository. | Klonen Sie das Beispielcode-Repository mit dem folgenden Befehl:
| App-Entwickler, AWS DevOps |
Stellen Sie Ihr Container-Image mithilfe der AWS Copilot CLI in AWS bereit. | Stellen Sie die Anwendung in einem Schritt bereit, indem Sie den folgenden Befehl im Stammverzeichnis Ihres Projekts verwenden:
Sie sollten dann in der Lage sein, auf die Anwendung zuzugreifen, indem Sie den als Ausgabe angegebenen DNS-Namen verwenden. | App-Entwickler, AWS DevOps |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Löschen Sie die über die AWS-Managementkonsole erstellten Ressourcen. | Wenn Sie Option 1 (die AWS-Managementkonsole) zur Bereitstellung des Anwendungsstapels verwendet haben, gehen Sie wie folgt vor, wenn Sie bereit sind, die von Ihnen erstellten Ressourcen zu löschen:
| App-Entwickler, AWS DevOps |
Löschen Sie die von AWS Copilot erstellten Ressourcen. | Wenn Sie Option 2 (die AWS Copilot CLI) zur Bereitstellung des Anwendungsstapels verwendet haben, führen Sie den folgenden Befehl im Stammverzeichnis Ihres Projekts aus, wenn Sie bereit sind, die von Ihnen erstellten Ressourcen zu löschen:
| App-Entwickler, AWS DevOps |
Zugehörige Ressourcen
Installation oder Aktualisierung der neuesten Version der AWS-CLI (AWS-CLI-Dokumentation)
Verwenden der AWS Copilot-Befehlszeilenschnittstelle (Amazon ECS-Dokumentation)
Amazon ECS auf AWS Fargate (Amazon ECR-Dokumentation)
Docker Desktop
(Docker-Dokumentation)