Spätestens mit dem Betrieb von Container-Umgebungen in der Cloud erschließen sich Kunden einen echten Mehrwert in der Cloud-Nutzung. Mit der passenden Strategie und Hilfsmitteln wie AWS Cloud Watch Container Insights werden Container sehr schnell, skalierbar und kostenoptimiert in die jeweils optimale Cloud-Plattform integriert. Mehr dazu im heutigen abschließenden Teil unserer AWS Blog-Serie zum Thema Container Observability.
Ein echter hybrider oder Multi-Cloud-Betrieb lässt sich am einfachsten mit Container-Deployments erreichen. Damit wird ein Vendor Lock-in vermieden (oder zumindest das Risiko eines solchen deutlich reduziert). Kein Wunder, dass die Container-Community das „Multi-Cloud-Paradigma“ gar nicht mehr in Frage stellt.
Dienste wie AWS EKS oder AWS ECS / Fargate erleichtern dabei die ersten Schritte ungemein. Während Fargate den serverlosen Betrieb von Containern (und damit attraktive Abrechnungsmodelle) ermöglicht, bietet der Elastic Kubernetes Service (EKS) einen vollständig gemanagten Kubernetes Cluster in der Cloud, der sich im Betrieb nur unwesentlich von den On-Premise-Clustern unterscheidet.
Um Container-Umgebungen zu monitoren, haben Kunden bisher häufig Drittanbieter-Lösungen wie z.B. Prometheus verwendet. Um diese in die Automatisierung in der AWS-Cloud einzubinden , war aber oft eine umfangreiche Anpassung des Deployments notwendig. Umgekehrt ließ sich der Funktionsumfang von CloudWatch – der zentralen Monitoring- und Observability-Plattform in AWS – für Container nur sehr reduziert nutzen, da die wesentlichen Metriken instanzbezogen sind.
Mit dem Einsatz von Amazon CloudWatch Container Insights ändert sich dies deutlich, und zwar sowohl für Elastic Container Services (ECS) wie auch für Kubernetes-Umgebungen (z.B. EKS).
Das Deployment: Just one click ahead
Für EKS-Cluster (und eigene Kubernetes Cluster) steht der Container Insights-Agent als Container zur Verfügung. Die Bereitstellung von Container Insights in ECS ist denkbar einfach:
- Bestehende ECS-Cluster können mittels der AWS CLI enabled werden:
aws ecs update-cluster-settings –cluster [meinECSCluster] –settings name=containerInsights,value=enabled - Neu zu deployende ECS-Cluster werden über die AWS Console mittels „Account Settings“ à Update à Cloud Watch Container Insights
Danach stehen in CloudWatch die folgenden Metriken zur Verfügung:
- Nutzung von CPU und Memory
- Task und Service Count
- Storage Nutzung: Read und write
- Netzwerkdurchsatz
- Anzahl der Container, aufgeschlüsselt nach Tasks, Services und Clustern.
- sowie weitere Metriken.
Durch die Integration dieser Metriken in CloudWatch ergeben sich viele Vorteile:
- Container-Logs können dynamisch durch CloudWatch Logs Insights analysiert werden.
- CloudWatch Alarms, basierend auf Container-Metriken, können automatisierte Aktionen, wie eine Lambda-Funktion auslösen. Somit kann die Container-Umgebung weiter automatisiert werden.
- CloudWatch Container Insights Metriken können direkt auf einem CloudWatch Dashboard dargestellt werden. Die Nutzung von 3rd-party Tools wie Prometheus und/oder Grafana kann reduziert werden.
Das CloudWatch Container Insights Dashboard (Quelle: amazon.com)
Wo ist der Nutzen von Cloud Insight?
Wer Container-Umgebungen nutzt, sieht sich vielfältigen Herausforderungen gegenüber:
- Container-Umgebungen sind kurzlebig. Dies liegt in der Natur von Containern. Durch kurze Deployment-Zyklen ist die Nachverfolgung von Ereignissen und Ressourcen schwierig.
- Das Monitoring von Betriebswerten (wie CPU-Nutzung und Speicher) ist komplex, da sich diese beständig ändern.
- Traditionelle Monitoring- oder ITSM-Plattformen stellen nur unzureichende Metriken für die Überwachung von Containern bereit.
- Das „Know-how“ ist dünn gesät. Es bedarf also Lösungen, die komplexe Probleme in der Container-Nutzung visualisieren.
Container Insights hilft Anwendenden, diese Probleme zu adressieren und wesentliche Ziele der Cloud-Nutzung, insbesondere bei der Umsetzung des Well Architected Framework (WAF) zu erreichen:
- Eine einheitliche Monitoring- und Alerting-Plattform wie CloudWatch ermöglicht ein vereinheitlichtes Bild auf die ganze Cloud-Umgebung, reduziert den Trainingsaufwand, verbessert die Sichtbarkeit und ist der Ausgangspunkt für die automatisierte Wartung der Umgebung
- Zugleich wird der Wartungsaufwand reduziert, oder andersherum, die „operational efficiency“ erhöht.
- Die Geschwindigkeit (z.B. in der Entwicklung) und die Agilität nimmt zu
So kann durch eine einfache Integration der Container-Plattform der Mehrwert einer Container-Umgebung in der Cloud deutlich erhöht werden.
Wo fängt man am besten an?
Materna erarbeitet mit Kunden, welche die Einführung von Container Insights und Logs Insights planen, im Rahmen eines Workshops das Projektvorgehen, das richtige Set an Metriken, den Integrationspfad und gegebenenfalls weitere Anbindungen (z.B. an Open Telemetry). Sprechen Sie uns gerne an.
Alle Beiträge aus dieser Blog-Serie:
Teil 1 – Cloud Umgebungen managen mit AWS Systems Manager
Teil 2 – Compliance in der AWS-Cloud überwachen mit AWS Config
Teil 3 – Accounts strukturieren mit AWS Organizations