AWS hat im April viele Neuerungen vorgestellt, die die Nutzbarkeit der AWS Cloud vereinfachen sollen. Die meisten Änderungen des Aprils beziehen sich auf serverless Services der AWS. Dieser Blogbeitrag stellt einen Ausschnitt aus den Neuerungen und Ankündigungen des Monats April 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 AWS Lambda, Amazon MSK und Amazon Aurora vorgestellt.
Compute
AWS Lambda
Der beliebte serverless-compute Service AWS Lambda hat im April einige Updates erhalten, die das aufdecken von Sicherheitsschwachstellen und Fehlkonfigurationen erleichtern und Microservices Architekturen vereinfachen.
Function URLs
Die Implementierung und Verwendung von Microservices findet immer mehr Einzug in Unternehmen. In der AWS greifen Microservice-basierte Architekturen häufig auf AWS Lambda zurück. Für eine funktionierende Architektur sind allerdings noch weitere Services nötig, wie Amazon API Gateway und ein Application Load Balancer, um der Lambda-Funktion API-Endpunkte und Methoden zur Abfrage zur Verfügung zu stellen.
Das oben beschriebene Zusammenspiel ist zwar ein bewährtes Konzept, allerdings durch die zusätzlichen Services – wie eben API Gateway und der Application Load Balancer – mit mehr Aufwand und Kosten verbunden, als es in einigen Fällen nötig wäre. Dies haben auch die Entwickler der AWS bemerkt und deswegen im vergangenen Monat die Verfügbarkeit von URLs für Functions vorgestellt. Dieses neue Feature ermöglicht es, HTTPS Endpunkte zu jeder Lambda-Funktion hinzuzufügen und erlaubt sogar die Konfiguration von CORS-Header.
Nutzer können global eindeutige URLs einfach in den Advanced Settings der Funktion erstellen. Diese URLs werden entweder mit einem Alias oder der ARN-Nummer einer Lambda Funktion verknüpft. Letzteres ruft immer automatisch die letzte Version der Funktion auf, sodass Updates immer sofort zur Verfügung stehen. Dies scheint zunächst vorteilhaft zu sein, allerdings können sich so auch schneller Fehler in den Code einschleichen. Aus diesem Grund ist es besser, die URLs mit dem Alias einer Funktion zu verknüpfen, um ein sicheres Deployment inklusive Integrationstests zu ermöglichen.
Wie oben bereits beschrieben, kann dieses neue Feature an einigen Stellen die Verwendung von API Gateway als Durchlauferhitzer obsolet machen. Sollte allerdings mehr als nur ein Endpunkt benötigt werden, ist die Verwendung von API Gateway immer noch notwendig. Die neuen Function-URLs bieten im Gegensatz zum API Gateway keine Möglichkeit, Abfragen zu validieren, Throttling zu implementieren oder Autorisierungen zu überprüfen.
Function URLs sind in allen kommerziellen AWS Regionen – außer China – ab sofort verfügbar. Die Kosten sind in den Preisen für Requests und Laufzeit einkalkuliert. An dieser Stelle verweisen wir gerne auf die neue Dokumentationsseite der AWS.
DevOps Guru
Historisch betrachtet war AWS einer der ersten Anbieter, die serverless-compute Services angeboten haben. Einer der ersten und bekanntesten Services dieser Art ist AWS Lambda. Inzwischen können eine Vielzahl an Parametern in AWS Lambda eingestellt werden, wie zum Beispiel die Allokation von RAM, Concurrency oder Timeouts. Die Konfiguration dieser Parameter – beziehungsweise das Finden der richtigen Balance dieser Parameter – kann grade für Beginner kompliziert sein und eine Fehlkonfiguration kann negative Auswirkung auf die Laufleistung der Funktion haben.
Mit Amazon DevOps Guru for Serverless hat Amazon im April eine Erweiterung des bekannten Services Amazon DevOps Guru vorgestellt. Die Erweiterung soll Entwicklern dabei helfen, ungewöhnliches Verhalten von Lambda Funktionen zu entdecken und zu beheben. DevOps Guru for Serverless benutzt hierfür ML-Algorithmen, um Fehlkonfigurationen aufzudecken, die sich negativ auf die Performance und Verfügbarkeit der Funktion auswirken. Beispiele hierfür sind die oben angesprochenen Parameter zur Concurrency und RAM Allokation.
DevOps Guru erlaubt aber nicht nur das Reagieren auf bereits aufgetretene Fehler, sondern ermöglicht auch ein proaktives Handeln. Die “proaktiven Fehlermeldungen” beziehen sich unter anderem auf Account Limits, die potentiell überschritten werden könnten, und inkompatible Lambda Timeouts im Verhältnis zu SQS Sichtbarkeitskonfigurationen. Sollte der Service eine Fehlkonfiguration aufdecken, sendet DevOps Guru eine Nachricht via EventBridge oder SNS an den entsprechenden Entwickler.
DevOps Guru for Serverless ist in allen AWS Regionen, in denen DevOps Guru verfügbar ist, verfügbar. Dies sind in Europa die Regionen Frankfurt, Irland und Stockholm.
Storage
Amazon Aurora Serverless v2
Im vergangenen April hat AWS die allgemeine Verfügbarkeit von Amazon Aurora Serverless für PostgreSQL und MySQL bekannt gegeben. Aurora Serverless ist eine on-demand Konfiguration mit Autoscaling von Amazon Aurora, die vollständig von AWS RDS verwaltet wird.
Ähnlich wie bei Snowflake ist auch bei Amazon Aurora Storage und Compute voneinander getrennt. Dies ermöglicht es, dass zumindest der Speicher unabhängig von den Computeressourcen hoch- bzw. runterskaliert werden kann. Amazon Aurora Serverless geht hierbei noch einen Schritt weiter und erlaubt die flexible Skalierung von Compute Ressourcen, sodass Aurora Serverless in der AWS Welt eine sinnvolle Alternative für die Verarbeitung von unregelmäßigen und unvorhersagbaren Workloads ist.
Mit der zweiten Generation von Amazon Aurora Serverless stellt Amazon den Nachfolger der ersten Generation nun zur freien Verfügung. Im Vergleich zur ersten Generation verfügt die zweite Generation über zusätzlichen Funktionalitäten wie Read-Replicas und Multi-AZ Deployments.
Amazon Aurora Serverless v2 ist seit April 2022 in Europa in Frankfurt, Irland, London, Paris und Stockholm verfügbar. Kostentechnisch orientiert sich der Service am pay-as-you-go Modell. Für exaktere Preisinformationen verweisen wir auf die Produktseite von Amazon, auf welcher auch ein Preisrechner zu finden ist.
Streaming und Messaging
Amazon MSK Serverless
Seit April ist Amazon MSK Serverless für alle Nutzer der AWS Cloud verfügbar. Die Serverless Variante von Amazon MSK reduziert den Wartungsaufwand, den das Monitoring und die Verwaltung von Kafka Clustern mit sich bringt.
Apache Kafka ist eine Open Source Technologie, die das Streamen von Daten wie Clickstream-Events, Transaktionen oder IoT-Events ermöglicht und ist eine weit verbreitete Lösung zum Decoupling von Applikationen.
Mit Amazon MSK können Kafka Cluster binnen weniger Minuten und mit wenigen Klicks erstellt und verwaltet werden. Amazon verteilt hierbei die benötigten Ressourcen automatisch auf mehrere Availability Zones, um eine hohe Verfügbarkeit zu gewährleisten. Amazon MSK Serverless geht allerdings noch einen Schritt weiter und nimmt dem Nutzer weitere Konfigurationsarbeit ab: Während Nutzer von Amazon MSK die Anzahl an Broker, die Größe der Instanzen und die Menge an Speicherkapazitäten selber definieren müssen, übernimmt AWS dies bei der Verwendung von Amazon MSK Serverless. Dies kann Amazon MSK Serverless zur perfekten Lösung machen, wenn man mit der Integration und Nutzung von Kafka beginnt.
Amazon MSK Serverless verfügt zudem noch über weitere out-of-the-box Features. Beispielsweise wird per default der entstehende Traffic über das AWS Backbone geleitet und passiert nicht das öffentliche Internet. Weiterhin sind die Daten automatisch sowohl at-rest als auch in transit verschlüsselt und die Access Control kann über das bekannte IAM System von AWS gesteuert werden.
Amazon MSK Serverless ist in Europa in Frankfurt, Irland und Stockholm verfügbar. Die Nutzung des Services kostet pro Cluster-Stunde circa 0,75 USD und 0,1 USD pro GB allokiertem Speicher pro Monat. Eingehender und ausgehende Daten kosten jeweils 0,1 USD pro GB beziehungswiese 0,05 USD pro GB.
Für weitere regelmäßige Updates zum Thema AWS Cloud, folgen Sie unserer Präsenz auf Xing und Instagram oder direkt unserem Blog.