Am veröffentlicht

AWS Neuigkeiten August 2021

Nach einem verhaltenem Monat Juli folgen zum Ende des Sommers im August einige spannende Änderungen seitens AWS. Dieser Blogbeitrag stellt einen Ausschnitt aus den Neuerungen und Ankündigungen des Monats August dar, erhebt aber nicht den Anspruch auf Vollständigkeit. Das Hauptaugenmerk liegt hierbei auf Veränderungen, bei denen wir von einem direkten Einfluss auf unsere Kunden ausgehen. In diesem Beitrag werden insbesondere Änderungen und Ankündigungen der Services Amazon SageMaker, AWS Lambda und CloudGuru vorgestellt.

Machine Learning

Amazon SageMaker Pipelines

Amazon SageMaker Pipelines ist ein speziell entwickelter Service zur CI/CD für Machine Learning Workflows, in welchem es seit August auch möglich ist, sogenannte LambdaSteps zu integrieren, die eine Lambda-Funktion als Schritt in der ML-Pipeline ausführen. Dies erlaubt es, beliebe Aufgaben und Aufträge innerhalb des Machine-Learning Workflows zu integrieren und so beispielsweise Datensätze aufzuteilen oder benutzerdefinierte Benachrichtigungen zu versenden. Zur Bereitstellung einer Lambda-Funktion kann entweder über die Konsole eine Funktion in einer beliebigen Sprache geschrieben werden oder als .zip-Datei der Code inklusive der kompilierten Programme und Abhängigkeiten bereitgestellt werden und SageMaker Pipelines erstellt automatisch eine neu Lambda-Funktion, die als Teil des LambdaSteps ausgeführt wird.

Asynchrone Inferenz von Amazon SageMaker

Um Inferenzen mit großer Nutzlast oder langen Verarbeitungszeiten zukünftig besser verarbeiten zu können, hat Amazon im August eine dritte Inferenzoption, nämliche die asynchrone Inferenz, veröffentlicht. Mit dieser werden eingehende Anfragen in einer Warteschlange gestellt und dann nacheinander verarbeitet. Workloads, die von dieser neuen Option profitieren, sind beispielsweise Vorhersagen von hochauflösenden Grafiken und Bildern und Workloads, die Antworten innerhalb von Minuten nach Erhalt der Anfrage bereitstellen müssen.

Die Asynchrone Inferenz von Amazon SageMaker ist in allen kommerziellen AWS Regionen verfügbar, in denen auch SageMaker selbst verfügbar ist, außer in Mailand, Kapstadt und Osaka.

Compute

Amazon CodeGuru Profiler

Das auf Machine-Learning basierende Entwickler-Tool Amazon CodeGuru Profiler dient Entwicklern dazu, das Laufzeitverhalten von Anwendungen zu verstehen, ineffiziente Codepassagen zu erkennen und so die allgemeine Leistung zu verbessern und Kosten zu senken.

Ein wichtiger Bestandteil des Profilers sind die Visualisierungen mit welchen Ineffizienzen grafisch aufgezeigt und Vergleiche zwischen verschiedenen Applikationen verdeutlicht werden können. Genau diese Visualisierungen haben im August eine weitere Vergleichsoption hinzugewonnen, welche das Anzeigen der Unterschiede zwischen verschiedenen Zeitabschnitten derselben Profilgruppe ermöglicht und so die Diagnose von Problemen einer Anwendung innerhalb eines spezifischen Zeitbereichs vereinfacht.

Neben den neuen Visualisierungsmöglichkeiten ist auch die Unterstützung für Python neu hinzugekommen zum Funktionsumfang des Services. Bisher wurden nur Empfehlungen für Java-basierte Applikationen erstellt, aber seit neuestem werden auch Python Applikationen, die auf Version 3.6 bis 3.9 basieren und auf einer EC2, einem Container oder AWS Lambda laufen, unterstützt.

Apropos Lambda-Funktionen: Auch im Zusammenspiel zwischen dem CodeGuru Profiler und AWS Lambda gibt es eine Änderung, denn der Profiler kann nun automatisch über die Lambda Konsole eingerichtet werden. Bisher musste bei der Profilerstellung mit CodeGuru für AWS Lambda ein mehrstufiger manueller Prozess durchlaufen werden, welche von der Erstellung einer Profilinggruppe über die Vergabe von Berechtigungen bis hin zum Setzen von Umgebungsvariablen reichte. All diese Schritte führt der CodeGuru Profiler nun automatisch aus und erleichtert so die Bereitstellung des Services.

AWS Lambda

Neben den oben bereits angesprochenen Änderungen rund um AWS Lambda, wurde der beliebte serverless-compute Service selbst auch angepasst. Eine der Ankündigungen, die veröffentlicht wurden, ist, dass AWS Lambda nun auch die Python Version 3.9 sowohl als verwaltete Laufzeit als auch als Container-Basis-Image unterstützt. Dies erlaubt es Kunden Lambda-Funktionen in Python 3.9 zu verfassen und somit von den neuen String- und Dictionary-Funktionen, der Binärschnittstelle für CPython und den allgemeinen Performance-Updates der neuesten Python-Version zu profitieren. Damit auch ältere Lambda-Funktionen früherer Python-Versionen von den Aktualisierungen profitieren können, muss der Code mit Python 3.9 kompatibel sein. Sollte dies der Fall sein, so muss nur die Funktionslaufzeit in den Einstellungen der Lambda-Funktion auf Python 3.9 geändert werden.

Amazon MemoryDB for Redis

Interaktive Applikationen müssen Anfragen schnell bearbeiten und beantworten können. Dies wird insbesondere dann deutlich, wenn man eine Architektur betrachtet, die auf Microservices basiert, also auf verhältnismäßig kleinen, unabhängigen Services, die alle miteinander vernetzt sind.

Um eine schnelle Kommunikation zwischen den Systemen zu ermöglichen, ist eine performante Datenbank notwendig, welche im Optimalfall über einen in-memory Cache verfügt, um so die Latenz bei Lesezugriffen möglichst gering zu halten. Für diesen Cache greifen viele Entwickler auf den open-source in-memory Data-Structure-Store Redis zurück.

Auch Nutzer der AWS konnten bisher schon davon profitieren, indem sie beispielsweise ElastiCache for Redis verwendet haben, einem fully-managed in-memory Caching-Service, der als Fassade von Amazon Aurora oder Amazon DynamoDB eingesetzt werden kann. Um diese Architektur zu erzielen, mussten Entwickler aber selbst Code innerhalb einer Applikation schreiben, um den Cache des Systems in Synchronisation zur Datenbank zu halten.

Um dies zu umgehen, hat AWS nun Amazon MemoryDB for Redis vorgestellt. Dies ist eine mit Redis kompatible In-Memory Database, welche die oben beschriebene Architektur ablösen soll. Bei der Verwendung von MemoryDB werden alle Daten in-memory gespeichert und sind ohne praktisch ohne Latenz verfügbar.

Bisher ist Amazon MemoryDB in Europa lediglich in Irland verfügbar, allerdings sollen weitere Standorte in naher Zukunft hinzukommen.

Monitoring

Amazon CloudWatch

Auch für einen der wichtigsten Services in der AWS gab es einige Ankündigungen und Neuerungen im vergangenen Monat. Zum einen wurde angekündigt, dass CloudWatch Logs zukünftig CloudWatch-Nutzungsmetriken unterstützt, sodass die CloudWatch-Logs-API-Nutzung überwacht werden kann. Dies erlaubt es beispielsweise Alarme zu erstellen, die eine Benachrichtigung versenden, wenn ein Servicekontingent erreicht wird.

Eine zweite Ankündigung, die Amazon CloudWatch betrifft, ist, dass zukünftig kontoübergreifende Alarme erstellt werden können. Kontoübergreifende Alarme bieten die Möglichkeit, Warnmeldungen auf der Grundlage von Metriken aus verschiedenen AWS-Konten zu erstellen und diese in einem kontoübergreifenden Dashboard zu visualisieren, um so operative Transparenz in einem zentralen Überwachungskonto einzurichten.

Ein Anwendungsfall könnte ein zentrales AWS-Konto sein, welches dazu genutzt wird, mehrere AWS-Konten, auf denen Produktionsanwendungen installiert sind, zu überwachen. Über diese Konten hinweg könnte ein Alarm definiert werden, der beispielsweise die maximale CPU-Auslastung aller EC2-Instanzen überwacht und eine Benachrichtigung verschicken, wenn ein gewisser Schwellenwert überschritten wird. Durch die Zentralisierung des Monitorings können die Applikationen einfacher überwacht werden und Kausalitäten leichter erkannt werden.

Kontoübergreifende Alarme sind in allen AWS Regionen verfügbar und es fallen lediglich die Standardpreise für CloudWatch-Alarme an.

Für weitere regelmäßige Updates zum Thema AWS Cloud, folgen Sie unserer Präsenz auf Xing und Instagram oder direkt unserem Blog.