So richten Sie Elastic Container Service (ECS) auf AWS ein

Elastic Container Service ist ein vollständig verwalteter Container-Orchestrierungsservice, der von AWS bereitgestellt wird. Es ist eine Wahl, um Container auf AWS auszuführen. Er unterstützt Fargate, um Serverless Compute für Container bereitzustellen. Mit Fargate entfällt die Notwendigkeit, Server bereitzustellen und zu verwalten. ECS hilft dabei, sich auf die Erstellung und Verwaltung von Anwendungen statt auf die Infrastruktur zu konzentrieren. Es ist ein hoch skalierbarer, schneller Container-Management-Service, der das Ausführen, Stoppen und Verwalten von Containern auf einem Cluster erleichtert.

ECS wird mit verschiedenen Preismodellen angeboten. Um mehr über die Preisgestaltung zu erfahren, besuchen Sie die offizielle Seite von AWS hier.

Grundlegende Terminologien in ECS.

  1. ECS-Cluster: Es ist eine logische Gruppierung von Tasks oder Services.
  2. Die Task-Definition: Sie beschreibt einen oder mehrere Container (bis zu maximal zehn), die Ihre Anwendung bilden.
  3. Die Aufgabe: Sie ist eine lauffähige Einheit einer Task-Definition.
  4. Der Dienst: Er dient dazu, eine bestimmte Anzahl von Instanzen einer Aufgabendefinition auszuführen und zu verwalten.

In diesem Artikel werden wir einen ECS-Cluster erstellen und eine beispielhafte Nginx-Anwendung darauf bereitstellen. Wir werden einen Testcluster erstellen, um das Cluster-Setup zu verstehen. Es wird empfohlen, einen Produktionscluster mit einer angepassten Konfiguration je nach Anforderung einzurichten.

Vorraussetzungen

  1. AWS-Konto (Erstellen Sie es, wenn Sie noch keines haben).
  2. Grundlegendes Verständnis der IAM-Rolle (Klicken Sie hier, um mehr über IAM zu erfahren).
  3. Grundlegendes Verständnis von VPC (Klicken Sie hier, um mehr über VPC zu erfahren)

Was werden wir tun?

  1. Anmeldung bei AWS (Erstellen, wenn Sie keine haben).
  2. Erstellen Sie einen Cluster
  3. Erstellen Sie eine IAM-Rolle für die Task-Ausführung
  4. Erstellen einer Aufgabendefinition
  5. Erstellen Sie einen Service
  6. Zugriff auf die erstellte Aufgabe
  7. Löschen des Clusters

Anmeldung bei AWS

Klicken Sie hier, um zur AWS-Anmeldeseite zu gelangen, und geben Sie Ihre Anmeldedaten ein.

Login-Seite

Sobald Sie sich in das Konto eingeloggt haben, sehen Sie die AWS Management Console wie folgt.

AWS Management-Konsole

Erstellen Sie einen Cluster

Um zu ECS zu gelangen, klicken Sie oben links im Bildschirm auf Services und unter Containers auf Elastic Container Service.

Zu ECS gehen

Sie sehen dann das Haupt-Dashboard von ECS wie unten. Klicken Sie auf „Clusters“ im linken Panel.

ECS-Dashboard

Da ich noch keinen Cluster erstellt habe, sehen wir nichts in der Liste. Erstellen Sie Ihren ersten Cluster, indem Sie auf die Schaltfläche „Create Cluster“ klicken.

Einen Cluster erstellen

Wählen Sie hier die Option „EC2 Linux + Networking“ und klicken Sie auf die Schaltfläche „Next step“.

Clustervorlage auswählen

Vergeben Sie einen Namen für den Cluster, wählen Sie den EC2-Instanztyp. Die EC2-Instanzen im Cluster werden mit dem von uns gewählten Typ erstellt. Wählen Sie das Bereitstellungsmodell der zu erstellenden EC2-Instanzen. Geben Sie weitere Konfigurationen gemäß Ihren Anforderungen an.

Cluster konfigurieren

Sie können entweder einen neuen PC erstellen oder einen bestehenden auswählen. Wenn Sie sich mit VPC und Netzwerken nicht auskennen und mehr darüber wissen möchten, empfehle ich Ihnen, den Artikel hier durchzulesen.

Konfigurieren der Cluster-Vernetzung

Sie können Tags angeben, wenn Sie möchten, oder Sie können es leer lassen, da es eine optionale Konfiguration ist. Klicken Sie auf die Schaltfläche „Erstellen“, wodurch ein Cluster für Sie erstellt wird.

Einen Cluster erstellen

Dies dauert ein paar Minuten und sobald der Cluster erstellt wurde, können Sie den Status als „ECS Status -3 von 3. “ auf der gleichen Seite. Klicken Sie auf die Schaltfläche „View Cluster“, um zum Cluster zu gelangen.

Erfolgreiche Cluster-Erstellung

Erstellen einer IAM-Rolle für die Aufgabenausführung

Bevor Sie mit der weiteren Konfiguration fortfahren, benötigen Sie eine Rolle, die für die Task-Ausführung verwendet werden soll. Gehen Sie also zu IAM und erstellen Sie eine neue Rolle mit der folgenden Richtlinie. Klicken Sie hier, wenn Sie IAM nicht kennen und mehr darüber erfahren möchten.

Erstellen Sie eine Rolle: ecsTaskExecutionRole mit der folgenden Richtlinie.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

Sobald Sie eine Rolle erstellt haben, sehen Sie diese wie folgt in der IAM-Konsole.

IAM-Rolle

Erstellen Sie eine Aufgabendefinition

Wenn Sie mit der IAM-Rolle fertig sind, können Sie jetzt mit dem Erstellen einer Aufgabendefinition fortfahren.

Bis zu diesem Punkt haben Sie nur einen leeren Cluster, in dem Ihre containerisierte Anwendung nicht läuft.

Der nächste Schritt besteht darin, eine Aufgabendefinition zu erstellen. Um Ihre erste Aufgabendefinition zu erstellen, klicken Sie auf „Aufgabendefinitionen“ in der linken Leiste unter „Cluster“.

Cluster-Übersicht

Klicken Sie hier auf die Schaltfläche „Neue Aufgabendefinitionen erstellen“.

Erstellen einer Task-Definition

Auf dieser Seite wählen Sie als Starttyp „EC2“ aus und klicken dann auf die Schaltfläche „Nächster Schritt“.

Starttyp auswählen

Erinnern Sie sich, dass wir im vorherigen Schritt eine IAM-Rolle erstellt haben? Jetzt müssen wir die Rolle angeben, die wir unter der Task-Rolle erstellt haben. Vergeben Sie einen Namen für die Task-Definition.

Aufgabendefinition konfigurieren

Wenn Sie ein Stück nach unten scrollen, sehen Sie die Schaltfläche „Container hinzufügen“, klicken Sie darauf und es öffnet sich ein neuer Bildschirm wie folgt.

Auf diesem Bildschirm geben Sie dem Container einen Namen und legen das Bild fest, das für den Container verwendet werden soll. Sie können auch Speichergrenzen, Port-Zuordnungen und Gesundheitsprüfungen festlegen. Wenn Sie mit der Konfiguration fertig sind, klicken Sie auf die Schaltfläche „Hinzufügen“.

Behälter hinzufügen

Geben Sie „Task-Speicher“ und „Task-CPU“ an, die von der Task verwendet werden sollen.

Ressourcen spezifizieren

Jetzt sind Sie mit der grundlegenden und obligatorischen Konfiguration für die Aufgabe fertig, klicken Sie auf die Schaltfläche „Erstellen“, wodurch eine Aufgabendefinition erstellt wird.

Eine Aufgabe erstellen

Sie werden die Meldung „Task-Definition erfolgreich erstellt“ sehen.

Erfolgreiche Aufgabenerstellung

Einen Dienst erstellen

Bis zu diesem Punkt haben wir einen Cluster und eine Aufgabendefinition. Der nächste Schritt besteht darin, einen Dienst zu erstellen. Gehen Sie zurück zum Cluster, den wir erstellt haben, und klicken Sie unter der Registerkarte Service auf die Schaltfläche Create, um einen Service zu erstellen.

Cluster-Übersicht

Wählen Sie als Starttyp EC2, wählen Sie die Aufgabendefinition, die wir erstellt haben, wählen Sie den Clusternamen aus der Dropdown-Option, geben Sie sogar einen Namen für den Dienst an, den wir erstellen, geben Sie die Anzahl der Aufgaben als 2 an, wodurch zwei Kopien Ihrer Anwendung erstellt werden.

Einen Dienst konfigurieren

Behalten Sie den Rest der Konfiguration wie unter Verteilungen und Aufgabenplatzierung beschrieben bei. Tags sind optional, es ist also nicht zwingend erforderlich, Tags anzugeben. Klicken Sie auf die Schaltfläche „Nächster Schritt“, um fortzufahren.

Einen Dienst konfigurieren

Wenn Sie über einen Load Balancer verfügen, können Sie diesen auswählen, um den externen Datenverkehr zu Ihrer Anwendung über ihn zu leiten. Klicken Sie auf die Schaltfläche „Nächster Schritt“.

Einen Dienst konfigurieren

Wenn Sie nicht möchten, dass Ihr Dienst skaliert wird, fahren Sie mit der Standardkonfiguration „Die gewünschte Anzahl des Dienstes nicht anpassen“ fort.

ASG einstellen, falls erforderlich

Überprüfen Sie die soeben vorgenommene Konfiguration des zu erstellenden Dienstes und klicken Sie auf die Schaltfläche „Dienst erstellen“.

Überprüfen und Erstellen eines Dienstes

Sie sehen den Status als „ECS Service status- 1 of 1 completed“, wenn der Dienst erfolgreich erstellt wurde.

Erfolgreiche Serviceerstellung

Zugriff auf den erstellten Task

Gehen Sie zurück zum Cluster und unter der Registerkarte „Tasks“ sehen Sie nun 2 Tasks laufen. Diese Tasks enthalten Ihre Anwendung.

Klicken Sie auf einen der Tasks, um mehr über ihn zu erfahren.

Aufgaben prüfen

Da wir keinen Load Balancer angegeben haben, können wir die Anwendung nicht von der externen Welt über eine bestimmte Verbindung erreichen. Daher müssten wir auf unsere Tasks über deren einzelne externe Links zugreifen.

Unter Netzwerkbindungen finden Sie den externen Link der Aufgabe. Diese spezielle Aufgabe wird nur über den hier verfügbaren Link erreichbar sein. Kopieren Sie den Link, um zu testen, ob die Anwendung, Nginx, die wir in der Aufgabendefinition angegeben hatten, läuft.

Externe Verknüpfung aus der Aufgabe holen

Rufen Sie den Browser auf und klicken Sie auf den Link, den wir im vorherigen Schritt kopiert haben. Sie können die Standardseite von Nginx sehen. Dies bedeutet, dass unsere Anwendung, Nginx, erfolgreich bereitgestellt wurde.

Zugriff auf die Aufgabe

Löschen Sie den Cluster

Wenn Sie Ihren Cluster nicht mehr benötigen, können Sie ihn mit einem einzigen Klick löschen. Gehen Sie zurück zum Cluster und klicken Sie auf die Schaltfläche Cluster löschen“.

Bestätigen Sie die Löschaktion, indem Sie im Textfeld „delete me“ eingeben und auf die Schaltfläche „Delete“ klicken. Dadurch wird der Cluster dauerhaft gelöscht und kann nicht mehr wiederhergestellt werden. Seien Sie also vorsichtig beim Löschen des Clusters, wenn Sie mit Echtzeitanwendungen arbeiten.

Löschen Sie die Aufgabe

Fazit

In diesem Artikel haben wir die Schritte zum Erstellen eines Clusters, einer Aufgabendefinition und eines Dienstes gesehen. Die Schritte, die wir gesehen haben, können verwendet werden, um einen Testcluster zu erstellen. Wenn Sie einen Cluster mit der Echtzeitanwendung erstellen möchten, müssen Sie die Konfigurationen, die wir gesehen haben, genauer ausführen.

Das könnte dich auch interessieren …