Suchen

Definition: Datenverarbeitungsservice zum Ausführen von Code Was ist AWS Lambda?

| Autor / Redakteur: MiR / Florian Karlstetter

Mit AWS Lambda können Anwender einen Code ausführen, ohne dass dabei Server verwaltet bzw. bereitgestellt werden müssen. Kosten fallen grundsätzlich nur für die tatsächliche Rechenzeit an, die ein Anwender verbraucht. Wird der Code demgegenüber nicht ausgeführt, entstehen auch keine Kosten.

Firma zum Thema

Mit AWS Lambda bietet Amazon Web Services einen Datenverarbeitungsservice, mit dem Code ausgeführt werden kann, ohne dafür Server bereitzustellen und verwalten zu müssen. Kosten fallen dabei nur bei tatsächlicher Nutzung an.
Mit AWS Lambda bietet Amazon Web Services einen Datenverarbeitungsservice, mit dem Code ausgeführt werden kann, ohne dafür Server bereitzustellen und verwalten zu müssen. Kosten fallen dabei nur bei tatsächlicher Nutzung an.
(Bild: gemeinfrei (geralt / pixabay) / CC0 )

Amazon Web Services Lambda (kurz: AWS Lambda) ist ein Datenverarbeitungsservice, der im Cloud-basierten Rahmen entsprechende Aktionen innerhalb einer Applikation detailliert analysiert und benutzerdefinierte Codes beim Eintreffen bzw. Eintreten bestimmter Ereignisse ausführt. Dabei verwaltet AWS Lambda automatisch und über mehrere Regionen hinweg die jeweiligen Datenverarbeitungsressourcen.

Immer wenn neue Ereignisse respektive Aktionen ausgelöst werden, skaliert Amazon Web Services Lambda automatisch die zur Verfügung stehenden Ressourcen. Bezeichnet wird dieser Ansatz als ereignisgesteuerte Datenverarbeitung. Ein solches Ereignis wird zum Beispiel durch den Aufruf einer spezifischen Webadresse, durch das Hochladen oder auch das Verändern einer Datei, durch Änderungen in einer Datenbank sowie etwa durch Sensor-Daten im IoT-Umfeld (IoT: Internet of Things) ausgelöst.

Automatische Resourcenverwaltung

AWS Lambda nutzt dabei die so bezeichnete Serverless-Technologie zur Ressourcenverwaltung. Um die Serverinfrastruktur muss sich der Anwender bei der Nutzung von Amazon Web Services Lambda daher nicht selbst kümmern. Vielmehr hat er lediglich die Aufgabe, die jeweils richtige Funktion bei den Eintreten eines Ereignisses auszuführen. AWS Lambda wird aufgrund dieser Möglichkeiten von Cloud-Administratoren genutzt, um einen Code ausführen zu können, ohne dabei das Management der erforderlichen Infrastruktur zu übernehmen.

Sofern die jeweiligen Aktivitäten mit der Infrastruktur zusammenhängen, übernimmt AWS Lambda das Management bzw. die Ausführung. So kommt der Dateiverarbeitungsservice zum Beispiel bei der Wartung von Servern oder Betriebssystemen, bei Patches sowie bei Protokollierungen durch AWS CloudWatch zum Einsatz. Unterstützt werden diesbezüglich auch Protokoll-APIs von Drittanbietern.

Wenig Betrieb, weniger Kosten

Der von AWS Lambda jeweils ausgeführte Code kann grundsätzlich mehrere Anfragen gleichzeitig bearbeiten. Allerdings werden nur Codes unterstützt, die in Java oder aber in Node.js geschrieben wurden. Zusätzlich führt der Service auch Prozesse aus, die von Amazon Linux (auf Amazon EC2) unterstützt werden. Des Weiteren speichert und verschlüsselt AWS Lambda Codes im Zusammenhang mit dem Amazon Simple Storage Service (S3); auch das Durchführen regelmäßiger Integrationsprüfungen zählt zu den Aufgabengebieten von AWS Lambda.

Grundsätzlich stellt AWS Lambda eine erstklassige Basis für Anwendungen mit lediglich gelegentlicher als auch mit wechselnder Auslastung dar. Dabei skaliert der Service automatisch, sobald die entsprechenden Nachfragen steigen. Wichtiger Aspekt dabei: Im Endeffekt spart AWS Lambda explizit in den Zeiten mit vergleichsweise wenig Betrieb Kosten.

Anwendungsbeispiele

Die Bandbreite an Einsatzmöglichkeiten von AWS Lambda ist eminent hoch und reicht von der reinen Datenverarbeitung bis hin zum Aufbau von Web-Anwendungen. In der Praxis wird der Service vor allem im Rahmen der folgenden Szenarien verwendet:

  • Reine Datenverarbeitung: AWS Lambda führt Code als Reaktion auf Ereignisse bzw. Auslöser aus. Lambda wird dabei direkt von AWS Services ausgeführt, kann aber auch via AWS Step Functions in verschiedene Arbeitsabläufe integriert werden.
  • Datenverarbeitung in Echtzeit: Möglich ist es auch, durch das Senden eines Auslösers über Amazon S3, Daten direkt nach dem Hochladen zu be- bzw. verarbeiten. So lassen sich dann zum Beispiel Videos transkodieren, Miniaturbilder erstellen, Dateien indizieren, Protokolle verarbeiten oder etwa auch Daten in Echtzeit filtern.
  • Datenstromverarbeitung in Echtzeit: AWS Lambda kann auch Echtzeit-Streamingdaten verarbeiten. Diese werden eingesetzt zur Verarbeitung von Transaktionsaufgaben, zum Verfolgen von Anwendungsaktivitäten
  • Laden, Extrahieren und Transformieren: AWS Lambda erlaubt zudem die Durchführung von unterschiedlichsten Transformationen im Hinblick auf Datenveränderungen. Dies geschieht mit Hilfe einer DynamoDB-Tabelle. Anschließend können die transformierten Daten in anderen Speichern neu geladen werden.
  • Aufbau von serverlosen Back-Ends: Diese können API-, Web- und IoT-Anforderungen verarbeiten.
  • Entwicklung von Webanwendungen: Wird AWS Lambda mit anderen Services dieser Art kombiniert, lassen sich leistungsstarke Webanwendungen entwickeln. Diese Webanwendungen können zum Beispiel automatisch vertikal und horizontal skalieren oder zum Beispiel in gleich mehreren Datenzentren im Rahmen von hochverfügbaren Ressourcen laufen.

Steuerung mit dem Lambda Dashboard

In der Regel setzen Entwickler die Lambda-Funktionen ein, um Anomalien oder Änderungen in den entsprechenden AWS-Ressourcen zu scannen. Hierzu gehören auch DynamoDB-Tabellen, Kinesis Streams, S3-Objekte sowie Benachrichtigungen, die über den spezifischen Webdienst AWS Simple Notification Service weitergeleitet werden.

Eine wichtige Aufgabe fällt dabei dem Lambda Dashboard zu. Hierbei handelt es sich um eine Befehlszeilenschnittstelle respektive um ein Software Development Kit (kurz: SDK). Anwender können hier sämtliche Funktionen auflisten, aktualisieren, überwachen oder löschen. Alternativ kann ein Lambda Code auch über das AWS SDK in anderen Amazon Services ausgeführt werden. Dabei besteht die Möglichkeit, die Amazon Identity-and-Access-Management-Rollen in der Form zu konfigurieren, dass die Zugriffsrechte für Anwender auf die jeweiligen AWS-Ressourcen unterschiedlich beschränkt sind.

Die Kosten: Abrechnungsgrundlage

Als Abrechnungsgrundlage von AWS Lambda fungiert zum einen die Anzahl der bedienten Anfragen sowie zum anderen die jeweils benötigte Rechenzeit zur Ausführung des Codes. Letztere wird in 100-Millisekunden-Schritten gemessen. Aktuell (Stand Oktober 2019) sind pro Monat eine Million Anforderungen im Verbund mit 400.000 GB/s Datenverarbeitungszeit kostenlos. Demgegenüber werden 0,20 Dollar für jede weitere Million Anfragen berechnet. Es fallen also grundsätzlich nur Kosten für tatsächliche Rechenzeit an. Dadurch können effektiv Kosten eingespart werden.

Zum Vergleich: Nutzt ein Anwender für die gleichen Aufgaben virtuelle Maschinen in der Cloud - also zum Beispiel EC2-Instanzen - stellt der Anbieter immer die komplette Laufzeit in Rechnung. Das bedeutet, es muss auch dann gezahlt werden, wenn überhaupt keine Anfragen bearbeitet werden.

Die Vorteile von AWS Lambda im Überblick

Zusammenfassend bleibt festzuhalten, dass AWS Lambda Vorteile in den folgenden drei Bereichen bietet:

  • Keine Serververwaltung: Jeder Code wird automatisch ausgeführt, ohne dass der Anwender Server verwalten bzw. bereitstellen muss.
  • Automatische und fortlaufende Skalierung: Der jeweilige Code wird von AWS Lambda als Reaktion auf ein auslösendes Ereignis automatisch ausgeführt, was einer automatischen Skalierung gleichkommt. Der Code des Anwenders wird dabei immer parallel ausgeführt, wobei jeder Auslöser grundsätzlich einzeln verarbeitet wird. Die entsprechende Skalierung orientiert sich dabei stets am Umfang der Verarbeitungslast.
  • Schnelle Messungen: Die anfallenden Kosten richten sich nach der Anzahl der Code-Auslösungen sowie nach der Rechenzeit, die in 100-ms-Einheiten belastet wird. Wird der Code des Anwenders nicht ausgeführt, fallen auch keine Kosten an.

(ID:45563433)