View a markdown version of this page

Wählen Sie einen Datenbankdienst für Ihre Lambda-based Anwendungen - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wählen Sie einen Datenbankdienst für Ihre Lambda-based Anwendungen

Viele serverlose Anwendungen müssen Daten speichern und abrufen. AWS bietet mehrere Datenbankoptionen, die mit Lambda Event Functions funktionieren. Zwei der beliebtesten Optionen sind Amazon DynamoDB, ein NoSQL-Datenbankservice, und Amazon RDS, eine traditionelle relationale Datenbanklösung. In den folgenden Abschnitten werden die wichtigsten Unterschiede zwischen diesen Services bei der Verwendung mit Lambda erläutert und Sie bei der Auswahl des passenden Datenbankservices für Ihre Serverless-Anwendung unterstützt.

Weitere Informationen über die anderen von AWS angebotenen Datenbankdienste und ein allgemeines Verständnis ihrer Anwendungsfälle und Kompromisse finden Sie unter Auswahl eines AWS Datenbankdienstes. Alle AWS Datenbankdienste sind mit Lambda kompatibel, aber möglicherweise sind nicht alle für Ihren speziellen Anwendungsfall geeignet.

Welche Möglichkeiten haben Sie bei der Auswahl eines Datenbankservices für Lambda?

AWS bietet mehrere Datenbankdienste. Für Serverless-Anwendungen sind DynamoDB und Amazon RDS zwei der beliebtesten Optionen.

  • DynamoDB ist ein vollständig verwalteter NoSQL-Datenbankservice, der für Serverless-Anwendungen optimiert ist. Er bietet nahtlose Skalierung und eine konsistente Leistung im einstelligen Millisekundenbereich in jeder Größenordnung.

  • Amazon RDS ist ein verwalteter relationaler Datenbankservice, der mehrere Datenbank-Engines unterstützt, darunter MySQL und PostgreSQL. Er bietet vertraute SQL-Funktionen mit verwalteter Infrastruktur.

Empfehlungen, falls Sie Ihre Anforderungen bereits kennen

Wenn Sie sich über Ihre Anforderungen bereits im Klaren sind, finden Sie hier unsere grundlegenden Empfehlungen:

Wir empfehlen DynamoDB für Serverless-Anwendungen, die eine konsistente Leistung mit niedriger Latenz und automatische Skalierung benötigen und keine komplexen Verknüpfungen oder Transaktionen erfordern. Aufgrund seines serverlosen Charakters eignet es sich besonders gut für Lambda-based Anwendungen.

Amazon RDS ist die bessere Wahl, wenn Sie komplexe SQL-Abfragen oder Verknüpfungen benötigen oder bereits Anwendungen mit relationalen Datenbanken verwenden. Beachten Sie jedoch, dass die Verbindung von Lambda Event Functions mit Amazon RDS eine zusätzliche Konfiguration erfordert und sich auf die Kaltstartzeiten auswirken kann.

Was Sie bei der Auswahl eines Datenbankservices beachten sollten

Bei der Auswahl zwischen DynamoDB und Amazon RDS für Ihre Lambda-Anwendungen sollten Sie die folgenden Faktoren berücksichtigen:

  • Verbindungsmanagement und Kaltstarts

  • Datenzugriffsmuster

  • Abfragekomplexität

  • Anforderungen für Datenkonsistenz.

  • Skalierungsmerkmale

  • Kostenmodell

Wenn Sie diese Faktoren verstehen, können Sie die Option auswählen, die Ihren spezifischen Anwendungsfällen am besten entspricht.

  • DynamoDB verwendet eine HTTP-API für alle Operationen. Lambda-Ereignisfunktionen können sofortige Anfragen stellen, ohne Verbindungen aufrechtzuerhalten, was zu einer besseren Kaltstartleistung führt. Jede Anfrage wird mithilfe von AWS Anmeldeinformationen ohne Verbindungsaufwand authentifiziert.

  • Amazon RDS erfordert die Verwaltung von Verbindungspools, da es herkömmliche Datenbankverbindungen verwendet. Dies kann sich auf Kaltstarts auswirken, da neue Lambda-Instances Verbindungen herstellen müssen. Sie müssen Strategien für das Verbindungspooling implementieren und möglicherweise den Amazon-RDS-Proxy verwenden, um Verbindungen effektiv zu verwalten. Beachten Sie, dass für die Verwendung des Amazon-RDS-Proxy zusätzliche Kosten anfallen.

  • DynamoDB eignet sich am besten für bekannte Zugriffsmuster und Einzeltabellendesigns. Es ist ideal für Lambda-Anwendungen, die einen konsistenten Zugriff mit geringer Latenz auf Daten basierend auf Primärschlüsseln oder Sekundärindizes benötigen.

  • Amazon RDS bietet Flexibilität für komplexe Abfragen und sich ändernde Zugriffsmuster. Es ist besser geeignet, wenn Ihre Lambda-Ereignisfunktionen einzigartige, maßgeschneiderte Abfragen oder komplexe Verknüpfungen über mehrere Tabellen hinweg ausführen müssen.

  • DynamoDB zeichnet sich durch einfache, schlüsselbasierte Operationen und vordefinierte Zugriffsmuster aus. Komplexe Abfragen müssen um Indexstrukturen herum entworfen werden, und Verknüpfungen müssen im Anwendungscode behandelt werden.

  • Amazon RDS unterstützt komplexe SQL-Abfragen mit Verknüpfungen, Unterabfragen und Aggregationen. Dies kann Ihren Lambda Event Function-Code vereinfachen, wenn komplexe Datenoperationen erforderlich sind.

  • DynamoDB bietet sowohl Optionen für letztendliche als auch für starke Konsistenz, wobei starke Konsistenz für Lesevorgänge einzelner Elemente verfügbar ist. Transaktionen werden unterstützt, jedoch mit einigen Einschränkungen.

  • Amazon RDS bietet vollständige ACID-Konformität (Atomizität, Konsistenz, Isolierung und Zuverlässigkeit) sowie Unterstützung für komplexe Transaktionen. Wenn Ihre Lambda-Ereignisfunktionen komplexe Transaktionen oder eine hohe Konsistenz über mehrere Datensätze hinweg erfordern, ist Amazon RDS möglicherweise besser geeignet.

  • DynamoDB skaliert automatisch mit Ihrer Workload. Es kann plötzliche Verkehrsspitzen von Lambda Event Functions ohne vorherige Bereitstellung bewältigen. Sie können den On-Demand-Kapazitätsmodus verwenden, um nur für das zu bezahlen, was Sie tatsächlich nutzen. Dies entspricht perfekt dem Skalierungsmodell von Lambda.

  • Amazon RDS verfügt über eine feste Kapazität, die auf der von Ihnen ausgewählten Instance-Größe basiert. Wenn mehrere Lambda-Ereignisfunktionen versuchen, gleichzeitig eine Verbindung herzustellen, überschreiten Sie möglicherweise Ihr Verbindungskontingent. Sie müssen die Verbindungspools sorgfältig verwalten und möglicherweise eine Wiederholungslogik implementieren.

  • Die Preisgestaltung von DynamoDB ist gut auf Serverless-Anwendungen abgestimmt. Mit On-Demand-Kapazität zahlen Sie nur für die tatsächlichen Lese- und Schreibvorgänge, die von Ihren Lambda Event Functions ausgeführt werden. Für Leerlaufzeiten fallen keine Gebühren an.

  • Amazon RDS berechnet Gebühren für die laufende Instance unabhängig von der Nutzung. Dies kann bei sporadischen Workloads, wie sie in Serverless-Anwendungen typisch sind, weniger kosteneffizient sein. Für Workloads mit hohem Durchsatz und konstanter Nutzung kann es jedoch wirtschaftlicher sein.

Erste Schritte mit dem von Ihnen ausgewählten Datenbankservice

Nachdem Sie die Auswahlkriterien für DynamoDB und Amazon RDS sowie die wichtigsten Unterschiede kennengelernt haben, können Sie die Option wählen, die Ihren Bedürfnissen am besten entspricht, und mithilfe der folgenden Ressourcen loslegen.

DynamoDB
Nutzen Sie die folgenden Ressourcen, um mit DynamoDB zu beginnen
  • Eine Einführung in den DynamoDB-Service finden Sie im Entwicklerhandbuch für Amazon DynamoDB unter Was ist DynamoDB?.

  • Folgen Sie dem Tutorial „Lambda mit API Gateway verwenden“, um ein Beispiel für die Verwendung einer Lambda-Ereignisfunktion zur Ausführung von CRUD-Vorgängen in einer DynamoDB-Tabelle als Antwort auf eine API-Anfrage zu sehen.

  • Lesen Sie Programming with DynamoDB and the AWS SDKs im Amazon DynamoDB Developer Guide, um mehr darüber zu erfahren, wie Sie mithilfe eines der SDKs von Ihrer Lambda Event Function aus auf DynamoDB zugreifen können. AWS

Amazon RDS
Nutzen Sie die folgenden Ressourcen, um mit Amazon RDS zu beginnen