auf Amazon Elastic Container Service (Amazon ECS)

Amazon Elastic Container Service (Amazon ECS) ist der Amazon Web Service, den Sie zur Ausführung von Docker-Anwendungen auf einem skalierbaren Cluster verwenden. In diesem Tutorial erfahren Sie, wie Sie eine Docker-fähige Beispielanwendung auf einem Amazon ECS-Cluster hinter einem Load Balancer ausführen, die Beispielanwendung testen und Ihre Ressourcen löschen, um Gebühren zu vermeiden.

Alles, was in diesem Tutorial gezeigt wird, ist kostenlos verfügbar.

Ihre AWS-Ressourcen verwalten

An der Konsole anmelden

Im Amazon ECS-Assistenten für die erste Ausführung durchlaufen Sie die einzelnen Schritte zum Erstellen eines Clusters und Starten einer Beispiel-Webanwendung. In diesem Schritt öffnen Sie die Amazon ECS-Konsole und starten Sie den Assistenten.



b. Mit Amazon ECS können Sie über Amazon Elastic Container Registry (Amazon ECR) ein Image Repository erstellen und in einem Schritt des Assistenten für die erste Ausführung ein Abbild darauf übertragen (siehe Screenshot rechts). Diese Funktion ist aktuell nur in ausgewählten Regionen verfügbar.

  • Wenn keine Amazon ECR-Optionen angezeigt werden, gehen Sie direkt zu Schritt 2.
  • Wenn Amazon ECR-Optionen angezeigt werden, deaktivieren Sie das Kontrollkästchen neben Deploy a sample application onto an Amazon ECS Cluster (Beispielanwendung auf einem Amazon ECS-Cluster bereitstellen)und wählen Sie Continue (Weiter) aus.
deploy-docker-container-1

(zum Vergrößern klicken)

deploy-docker-container-1

Eine Aufgabendefinition ist wie ein Bauplan für Ihre Anwendung. In diesem Schritt legen Sie eine Aufgabendefinition fest, damit Amazon ECS weiß, welches Docker-Image für Container verwendet und wie viele Container in der Aufgabe eingesetzt werden sollen, und die Ressourcenzuordnung für jeden Container kennt.


Die Aufgabendefinition enthält bereits Standard-Konfigurationswerte.

  • Überprüfen Sie die Standardwerte und wählen Sie Next Step (Nächster Schritt) aus.

Wenn Sie die Konfigurationen ändern oder mehr erfahren möchten, lesen Sie das Dokument Task Definition Parameters (Parameter für die Aufgabendefinition).

deploy-docker-container-2

(zum Vergrößern klicken)

deploy-docker-container-2

Nach dem Erstellen einer Aufgabendefinition konfigurieren Sie nun den Amazon ECS-Service. Ein Service startet und behält Kopien der Aufgabendefinition in Ihrem Cluster bei. Beispiel: Indem Amazon ECS eine Anwendung als einen Service ausführt, kann Amazon ECS alle abgebrochenen Aufgaben automatisch wiederherstellen und die von Ihnen angegebene Anzahl an Kopien beibehalten.


a. Konfigurieren von Serviceoptionen:

  • Service Name (Servicename): Die standardmäßige sample-webapp ist eine webbasierte "Hello World"-Anwendung, die von AWS bereitgestellt wird. Sie wird auf unbestimmte Zeit ausgeführt. Wenn Sie also als Service ausgeführt wird, wird sie neu gestartet, wenn die Aufgabe fehlerhaft ist oder unerwarteterweise abgebrochen wird.
  • Desired number of tasks (Gewünschte Anzahl von Aufgaben): Um innerhalb des kostenlosen AWS-Kontingents zu bleiben, lassen Sie den Standardwert 1 stehen. Dadurch wird eine Kopie Ihrer Aufgabe erstellt.
deploy-docker-container-3

(zum Vergrößern klicken)

deploy-docker-container-3

b. Elastic Load Balancing: Sie können einen Load Balancer mit Ihrem Service verwenden. Amazon ECS kann einen ELB-Load-Balancer (Elastic Load Balancing) erstellen, um das Datenvolumen auf die Container-Instances zu verteilen, auf denen Ihre Aufgabe gestartet wird.

  • Container name: host port: (Container-Name: Host-Port:) Wählen Sie Simple-app:80 aus.
  • Die Standardwerte für ELB listener protocol (ELB-Zuhörerprotokoll), ELB listener port (ELB-Zuhörer-Port) und ELB health check (ELB-Zustandsprüfung) sind für die Beispielanwendung eingerichtet. Weitere Informationen zur Konfiguration für das Load Balancing finden Sie unter Service Load Balancing (Service-Load-Balancing).
deploy-docker-container-3b

(zum Vergrößern klicken)

deploy-docker-container-3b

c. Bevor Sie einem Amazon ECS-Service einen Load Balancer hinzufügen können, müssen Sie für die genutzten Services eine IAM-Rolle (Identity and Access Management) erstellen. So kann Amazon ECS Aufrufe an die Amazon EC2 API und die Elastic Load Balancing API machen, um Instances bei Ihren Load Balancern zu registrieren und die Registrierung wieder aufzuheben.

  • Wenn Sie noch keine Service-IAM-Rolle haben, erstellt Amazon ECS eine Rolle mit dem Namen ecsServiceRole.
  • Wenn Sie bereits eine Amazon ECS-Servicerolle haben, wählen Sie sie aus dem Dropdown-Menü aus.
deploy-docker-container-3c

(zum Vergrößern klicken)

deploy-docker-container-3c

d. Überprüfen Sie Ihre Einstellungen und wählen Sie Next Step aus.

deploy-docker-container-3d

(zum Vergrößern klicken)

deploy-docker-container-3d

Ihre Amazon ECS-Aufgabe wird auf einem Cluster ausgeführt. Hierbei handelt es sich um mehrere Container-Instances, die den Amazon ECS-Container-Agent ausführenIn diesem Schritt konfigurieren Sie das Cluster, überprüfen Sie die Sicherheitseinstellungen und legen Sie IAM-Rollen fest. 


a. Verwenden Sie die nachstehenden Konfigurationseinstellungen:

  • Cluster name (Cluster-Name): Geben Sie sample-cluster ein.
  • EC2 instance type (EC2-Instance-Typ): Mit dem standardmäßigen t2.micro-Instance-Typ bleiben Sie innerhalb des kostenlosen Kontingents. Instance-Typen mit mehr CPU Speicherressourcen können mehr Aufgaben bewältigen. Weitere Informationen zu den verschiedenen Instance-Typen finden Sie unter Amazon EC2-Instance-Typen.
  • Number of instances (Anzahl der Instances): Lassen Sie den Standardwert 1 stehen, um eine Amazon EC2-Instance in Ihrem Cluster zu starten, der Aufgaben zugeordnet werden können. Je mehr Instances sich in Ihrem Cluster befinden, desto mehr Aufgaben können Sie ihr zuordnen.  
  • Key pair (Schlüsselpaar): Ein Schlüsselpaar ist später für SSH in Ihren Instances erforderlich. Fahren Sie fort, indem Sie None – unable to SSH (Keines – nicht verfügbar für SSH) oder ein bestehendes Schlüsselpaar auswählen oder eines in der Amazon EC2-Konsole erstellen. 
deploy-docker-container-5a

(zum Vergrößern klicken)

deploy-docker-container-5a

b. (Optional) Sicherheitsgruppe: Mit dem Standardwert (Anywhere) (Überall) ist der Zugriff aus dem gesamten Internet möglich. Sie können auch einen CIDR-Block auswählen, durch den der Zugriff auf Ihre Instances eingeschränkt wird.

deploy-docker-container-5b

(zum Vergrößern klicken)

deploy-docker-container-5b

c. IAM-Rolle für die Container-Instance:

  • Wenn Sie keine IAM-Rolle haben, erstellt der Amazon ECS-Assistent eine für Sie.
  • Wenn Sie bereits eine IAM-Rolle für die Container-Instance haben, wählen Sie sie aus der Dropdown-Liste aus.
deploy-docker-container-5c

(zum Vergrößern klicken)

deploy-docker-container-5c

d. Wählen Sie Review and Launch (Überprüfen und Starten) aus.

deploy-docker-container-5d

(zum Vergrößern klicken)

deploy-docker-container-5d

Sie haben bereits Ihre Aufgabendefinition (entspricht dem Bauplan einer Anwendung), den Amazon ECS-Service (wird gestartet und behält Kopieren Ihrer Aufgabendefinition bei) und Ihr Cluster (Container-Instances, die den Container-Agent ausführen) konfiguriert. In diesem Schritt überprüfen, starten und sehen Sie die Ressourcen, die Sie erstellen.


a. Sie haben vor dem Start noch eine letzte Gelegenheit, Ihre Aufgabendefinition und -konfiguration sowie Ihre Cluster-Konfiguration zu überprüfen.

  • Wählen Sie Launch instance & run service (Instance starten & Dienst ausführen) aus. 
deploy-docker-container-6

(zum Vergrößern klicken)

deploy-docker-container-6

b. Sie befinden sich auf einerLaunch Status-Seite (Startstatus), auf der der Status Ihres Starts angezeigt wird und die einzelnen Schritte des Prozesses beschrieben werden. 

  • Wählen Sie nach dem Start View service (Service anzeigen) aus.
deploy-docker-container-7

(zum Vergrößern klicken)

deploy-docker-container-7

In diesem Schritt bestätigen Sie, dass die Beispielanwendung ausgeführt wird, indem Sie Ihren Browser auf den DNS-Namen des Load Balancers verweisen.


a. Klicken Sie auf der sample-webapp-Seite auf den Namen Ihres Load Balancers.

deploy-docker-container-10

(zum Vergrößern klicken)

deploy-docker-container-10

b. Sie testen jetzt die Beispielanwendung:

  • Kopieren Sie den ELB-DNS-Namen.
  • Fügen Sie ihn in ein neues Browserfenster ein.
  • Drücken Sie die Eingabetaste auf Ihrer Tastatur, um die Beispielanwendung (hier eine statische Webseite) aufzurufen.
deploy-docker-container-12a

(zum Vergrößern klicken)

deploy-docker-container-12a

In diesem Tutorial haben Sie drei Ressourcen gestartet: ein Amazon ECS-Cluster, eine Amazon EC2-Instance und einen Load Balancer. In diesem Schritt bereinigen Sie alle Ihre Ressourcen, um unerwünschte Gebühren zu vermeiden.


a. Zurück zur Seite der Amazon ECS-Konsole navigieren

  • Klicken Sie auf den Cluster-Namen (sample-cluster).
deploy-docker-container-13

(zum Vergrößern klicken)

deploy-docker-container-13

b. Wählen Sie das Kontrollkästchen neben sample-webapp aus und klicken Sie auf Update (Aktualisieren).

deploy-docker-container-15

(zum Vergrößern klicken)

deploy-docker-container-15

c. Damit Sie nicht versehentlich einen Service mit aktiven Aufgaben löschen, müssen Sie alle Aufgaben abbrechen, bevor Amazon ECS einen Service löscht.

  • Legen Sie für die Anzahl der Aufgaben 0 fest und wählen SieUpdate Service (Service aktualisieren) aus.
  • Wählen Sie nach der Aktualisierung Ihres Services Delete (Löschen) aus.
deploy-docker-container-14

(zum Vergrößern klicken)

deploy-docker-container-14

d. Löschen Sie die Amazon EC2-Instances, die mit Ihrem Cluster gestartet wurden:

  • Öffnen Sie die Amazon EC2-Konsole
  • Wählen Sie links Instances aus.
  • Wählen Sie das Kontrollkästchen neben der Instance mit der Bezeichnung ECS Instance – EC2ContainerService-default aus.
  • Wählen Sie Actions (Aktionen) > Instance State (Instance-Status) > Terminate(Beenden) aus.

 

 

deploy-docker-container-17

(zum Vergrößern klicken)

deploy-docker-container-17

e. Löschen Sie Ihre Load Balancer:

  • Wählen Sie links Load Balancers aus.
  • Wählen Sie das Kontrollkästchen neben dem Load Balancer aus, den Sie für Ihren Service erstellt haben (beginnt mit EC2Contai-EcsElast). 
  • Führen Sie einen Rechtsklick aus und wählen Sie Delete (Löschen) aus.

 

deploy-docker-container-19a

(zum Vergrößern klicken)

deploy-docker-container-19a

Herzlichen Glückwunsch! Sie wissen jetzt, wie Sie Ihr Docker-fähige Anwendung auf Amazon Elastic Container Service (Amazon ECS) konfigurieren, bereitstellen und löschen. Amazon ECS ist ein hoch skalierbarer, sehr leistungsfähiger Container-Management-Service, der Docker-Container unterstützt und es Ihnen ermöglicht, Anwendungen auf einem verwalteten Cluster von Amazon EC2-Instances ganz einfach auszuführen.

Nun wissen Sie, wie Sie Ihre Docker-fähige Anwendung auf Amazon ECS bereitstellen. Sie können nun zum nächsten Tutorial übergehen, in dem Sie lernen, wie Sie eine Docker-Registry zur Aufbewahrung Ihrer Container-Abbilder erstellen. Sie erstellen ein Docker-Image, übertragen es an ein Repository und setzen es dann für die Bereitstellung einer Anwendung auf Amazon ECS ein.

Erstellen einer Docker-Registry

Ja
Nein