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-Funktionen 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 -Datenbankservices sind mit Lambda kompatibel, aber nicht alle eignen sich für Ihren speziellen Anwendungsfall.

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

AWS bietet mehrere Datenbankdienste an. 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-Funktionen mit Amazon RDS zusätzliche Konfigurationen erfordert und die Kaltstartzeiten beeinflussen 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-Funktionen können Anfragen sofort 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-Funktionen einzigartige, maßgeschneiderte Abfragen oder komplexe Verknüpfungen über mehrere Tabellen hinweg durchfü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-Funktionscode 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-Funktionen komplexe Transaktionen oder starke Konsistenz über mehrere Datensätze hinweg benötigen, ist Amazon RDS möglicherweise besser geeignet.

  • DynamoDB skaliert automatisch mit Ihrer Workload. Es kann plötzliche Spitzen im Datenverkehr durch Lambda-Funktionen 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-Funktionen 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 Ihrer Lambda-Funktionen. 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?.

  • Im Tutorial Verwenden von Lambda mit API Gateway sehen Sie ein Beispiel für die Verwendung einer Lambda-Funktion zum Ausführen von CRUD-Vorgängen in einer DynamoDB-Tabelle als Antwort auf eine API-Anfrage.

  • 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-Funktion aus auf DynamoDB zugreifen können. AWS

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