+++ title = "Container Plattform" chapter = false weight = 60 pre = "6. " +++ ### Themen: - [Einleitung](#einleitung) - [Technische Konzepte](#technische-konzepte) - [Relevante AWS Services](#relevante-aws-services) - [Anwendung](#anwendung) - [Erstellen des Container Clusters](#erstellen-des-container-clusters) - [Erstellen der Task Definition](#erstellen-der-task-definition) - [Service Konfiguration Backend Container](#service-konfiguration-backend-container) - [Zusammenfassung und nächste Schritte](#zusammenfassung-und-nächste-schritte) ### Einleitung Im vorherigen Kapitel hast du ein Container Image für die Backend Applikation erstellt. Wie besprochen beinhaltet das Container Image die Applikation, die Abhängigkeiten, die die Applikation benötigt, und das Container Image beschreibt wie die Applikation ausgeführt werden kann. Das Backend Container Image beispielsweise beinhaltet eine **[Python](https://de.wikipedia.org/wiki/Python_(Programmiersprache))** Laufzeitumgebung, da das Backend in Python implementiert ist und Python zum Ausführen braucht. Du hast das Container Image in ein Amazon ECR Container Repository hochgeladen. Die Container Repositories speichern die Container Images. Also fragst du dich vielleicht wie die Container ausgeführt werden, damit deine Backend Applikation nutzbar ist? Damit wirst du dich in diesem Kapitel beschäftigen. {{% include "container/container_ecs_intro.de.md" %}}


{{% include "container/container_ecs_aws.de.md" %}} ### Anwendung In den folgenden Schritten wirst du ein Container Cluster erstellen. Das Cluster wird genutzt, um Backend-Container auszuführen. Wie ein Cluster Backend-Container ausführen soll werden mit Task Definitionen beschrieben. In diesem Kapitel wirst du Task Definitionen für die ToDo-Applikation erstellen. #### Erstellen des Container Clusters **Aufgabe:** Erstelle ein Container Cluster in Amazon Elastic Container Service (Amazon ECS) und benenne es ``workshop-cluster``. Nutze als Template Networking only und wähle Use Container Insights aus, um mehr Einblicke später in das Cluster zu bekommen. {{%expand "Hinweis" %}} In der **[Dokumentation](https://docs.aws.amazon.com/de_de/AmazonECS/latest/developerguide/create_cluster.html )** sind die einzelnen Schritte zur Erstellung eines Cluster beschrieben. {{% /expand%}} {{%expand "Lösung" %}} 1. Unter Services den Dienst **Elastic Container Service** auswählen. 1. Im Bereich Amazon ECS - auf **Clusters** danach auf **Create Cluster** klicken. 1. Als **Cluster name** ``workshop-cluster`` eingeben. 1. Unter Networking **workshop-VPC** auswählen und die Subnetze **Workshop-PublicA** und **Workshop-PublicB**. 1. Unter Monitoring **Use Container Insights** aktivieren. 1. Klick auf **Create**. 1. Klick auf **View Cluster**. {{% /expand%}}
Beim ersten Versuch ein Amazon ECS Cluster zu erstellen kann es ggf. zu einer Fehlermeldung kommen mit dem Vermerk, dass eine Service Rolle noch nicht existiert. Sollte das der Fall sein, den Vorgang mit **Cancel** abbrechen und die oben genannten Schritte 1 - 6 nochmals ausführen. Im Hintergrund wurde die Rolle dann automatisch angelegt.
#### Erstellen der Task Definition {{% includereplace "ecs_task_definition.de.md" "servicename:backend" %}} {{% include "ecs_backend_env_setup.de.md" %}} #### Service Konfiguration Backend Container {{% includereplace "ecs_cluster_service.de.md" "servicename:backend" "security-group-name:Workshop-ECS-Backend-SG" %}} ### Zusammenfassung und nächste Schritte Herzlichen Glückwunsch! Du hast erfolgreich das Backend für deine Anwendung durch Amazon ECS implementiert und dadurch hochverfügbar gemacht. Nun können zwei Container im Hintergrund laufen, um die Anwendung zu unterstützen. Diese sind durch den Load Balancer auf zwei Availability Zones verteilt. Im nächsten Schritt wird nun das Frontend aufgesetzt. Das Frontend wird dann über den Load Balancer auf das Backend zugreifen und das Backend API auf die ToDos in der Datenbank zugreifen.