Veröffentlicht am

Was ist AWS Lambda? Serverloses Computing für Anwendungen

Autoren

    Was ist AWS Lambda? Serverloses Computing für Anwendungen

    Backend-Code auszuführen bedeutet traditionell, Server bereitzustellen, Ressourcen zu skalieren und die Verfügbarkeit sicherzustellen.
    Mit AWS Lambda kannst du Code ausführen, ohne Infrastruktur zu verwalten, und bezahlst nur für die tatsächliche Nutzung.

    Was ist AWS Lambda?

    AWS Lambda ist ein serverloser Computing-Dienst von Amazon Web Services.
    Statt Anwendungen auf dedizierten Servern zu betreiben, schreibst du Funktionen, die als Reaktion auf Ereignisse ausgeführt werden, zum Beispiel:

    Dein Code läuft in kurzlebigen Containern, die vollständig von AWS verwaltet werden.
    Du stellst lediglich den Funktionscode und die Konfiguration bereit. Lambda übernimmt den Rest.

    Warum AWS Lambda verwenden?

    • Keine Serververwaltung → Keine Bereitstellung, Wartung durch Patches oder Skalierung von Servern.
    • Automatische Skalierung → Führt sofort so viele Instanzen aus wie nötig, von einer Anfrage bis zu Tausenden pro Sekunde.
    • Nutzungsabhängige Abrechnung → Berechnet werden nur Rechenzeit (Millisekunden) und Anfragen, keine Leerlaufzeit.
    • Unterstützung mehrerer Sprachen und Umgebungen → Node.js, Python, Java, Go, Ruby, .NET und benutzerdefinierte Laufzeitumgebungen.
    • Einfache Integration → Funktioniert nahtlos mit Amazon S3, Amazon DynamoDB, Amazon SNS, Amazon API Gateway und anderen AWS-Diensten.
    • Integrierte hohe Verfügbarkeit → Läuft über mehrere Availability Zones hinweg, um Fehlertoleranz zu gewährleisten.

    Typische Anwendungsfälle

    • Web-APIs → Lambda mit Amazon API Gateway kombinieren, um serverlose REST- oder GraphQL-APIs zu erstellen.
    • Dateiverarbeitung → Bilder, Videos oder Dokumente nach einem Upload nach Amazon S3 automatisch verarbeiten.
    • Geplante Aufgaben → Cronserver durch Amazon CloudWatch Events oder Amazon EventBridge ersetzen, um regelmäßige Aufgaben auszuführen.
    • Chatbots und Microservices → Leichtgewichtige, ereignisgesteuerte Backend-Logik mit Diensten wie Amazon SNS oder Amazon SQS in großem Maßstab ausführen.

    AWS Lambda im Vergleich zu traditionellen Servern

    • Traditionelle Server → Erfordern Bereitstellung, Monitoring und Skalierung für Spitzenlast mit Diensten wie Amazon EC2.
    • AWS Lambda → Vollständig verwaltet, skaliert automatisch und berechnet nur die Ausführungszeit.

    Einschränkungen und Überlegungen

    • Kaltstarts → Bei Funktionen, die längere Zeit nicht aufgerufen wurden, kann eine kurze Verzögerung auftreten (ein „Kaltstart“), während AWS einen neuen Container startet.
    • Zeitlimits → Jeder Aufruf hat eine maximale Ausführungszeit (derzeit 15 Minuten). Lang laufende Aufgaben benötigen möglicherweise einen anderen Dienst wie Amazon ECS oder Amazon EC2.
    • Speicher- und CPU-Grenzen → Die Speicherzuweisung ist auf einige GB begrenzt (derzeit 10 GB), wobei die CPU-Leistung proportional zum Speicher ist. Rechenintensive Workloads können diese Grenzen erreichen.
    • Temporärer Speicher → Der standardmäßige /tmp-Speicher ist begrenzt (standardmäßig 512 MB, auf 10 GB erweiterbar). Große temporäre Dateien benötigen daher externen Speicher wie Amazon S3 oder Amazon EFS.
    • Anbieterbindung → Eine tiefe Integration mit AWS-Diensten kann die Migration zu einem anderen Cloud-Anbieter erschweren.
    • Netzwerkeinschränkungen → Der Zugriff auf Ressourcen innerhalb einer VPC erhöht den Einrichtungsaufwand und kann die Kaltstartlatenz steigern.
    • Komplexeres Debugging → Lokales Debugging und Tracing können schwieriger sein als in einer traditionellen Serverumgebung.

    Fazit

    AWS Lambda ermöglicht Entwicklern, ereignisgesteuerte Anwendungen zu erstellen, ohne Server zu verwalten.
    Ob du ein schnelles Backend für eine Webanwendung, eine Dateiverarbeitung in Echtzeit oder eine Datenpipeline benötigst, Lambda liefert Rechenleistung bei Bedarf, die automatisch skaliert.