Planen Sie Jobs für Amazon RDS for Postgre SQL und Aurora Postgre mithilfe SQL von Lambda und Secrets Manager - AWS Prescriptive Guidance

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.

Planen Sie Jobs für Amazon RDS for Postgre SQL und Aurora Postgre mithilfe SQL von Lambda und Secrets Manager

Erstellt von Yaser Raja () AWS

Umgebung: PoC oder Pilotprojekt

Quelle: Datenbanken: Relational

Ziel: SQL Postgre auf AWS

R-Typ: N/A

Arbeitsaufwand: Open Source

Technologien: Datenbanken

AWSDienste: AWS Lambda; AmazonRDS; AWS Secrets Manager; Amazon Aurora

Übersicht

Für lokale Datenbanken und Datenbanken, die auf Amazon Elastic Compute Cloud (AmazonEC2) -Instances gehostet werden, verwenden Datenbankadministratoren häufig das Cron-Hilfsprogramm, um Jobs zu planen.

Beispielsweise kann ein Job für die Datenextraktion oder ein Job für das Löschen von Daten einfach mit Cron geplant werden. Für diese Jobs sind die Datenbankanmeldedaten in der Regel entweder fest codiert oder in einer Eigenschaftendatei gespeichert. Wenn Sie jedoch zu Amazon Relational Database Service (AmazonRDS) oder Amazon Aurora SQL Postgre-Compatible Edition migrieren, verlieren Sie die Möglichkeit, sich bei der Host-Instance anzumelden, um Cron-Jobs zu planen. 

Dieses Muster beschreibt, wie AWS Lambda und AWS Secrets Manager verwendet werden, um Jobs für Amazon RDS for Postgre SQL - und Aurora SQL Postgre-Compatible Datenbanken nach der Migration zu planen.  

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives Konto AWS 

  • Eine Amazon RDS for Postgre SQL - oder Aurora Postgre-kompatible Datenbank SQL

Einschränkungen

Architektur

Quelltechnologie-Stack

Dieser Stack enthält Jobs, die in Sprachen wie Bash, Python und Java geschrieben wurden. Datenbankanmeldedaten werden in der Eigenschaftendatei gespeichert, und der Job wird mithilfe von Linux-Cron geplant.

Zieltechnologie-Stack

Dieser Stack hat eine Lambda-Funktion, die die in Secrets Manager gespeicherten Anmeldeinformationen verwendet, um eine Verbindung zur Datenbank herzustellen und die Aktivität auszuführen. Die Lambda-Funktion wird im geplanten Intervall mithilfe von Amazon CloudWatch Events initiiert.

Zielarchitektur

CloudWatch Ereignis, das eine Lambda-Funktion startet, die Jobs für die RDS DB-Instance plant.

Tools

  • AWSLambda ist ein Rechendienst, mit dem Sie Code ausführen können, ohne Server bereitzustellen oder zu verwalten. AWSLambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch, von wenigen Anfragen pro Tag bis hin zu Tausenden pro Sekunde. Sie zahlen nur für die Rechenzeit, die Sie verbrauchen. Es fallen keine Gebühren an, wenn Ihr Code nicht ausgeführt wird. Mit AWS Lambda können Sie Code für praktisch jede Art von Anwendung oder Backend-Service ohne Verwaltungsaufwand ausführen. AWSLambda führt Ihren Code auf einer hochverfügbaren Recheninfrastruktur aus und verwaltet alle Rechenressourcen, einschließlich Server- und Betriebssystemwartung, Kapazitätsbereitstellung und automatische Skalierung, Codeüberwachung und Protokollierung. Sie müssen lediglich Ihren Code in einer der Sprachen bereitstellen, die AWS Lambda unterstützt.

  • Amazon CloudWatch Events bietet einen Stream von Systemereignissen, die Änderungen an AWS Ressourcen beschreiben, nahezu in Echtzeit. Mithilfe einfacher Regeln, die Sie schnell einrichten können, können Sie Ereignisse zuordnen und sie an eine oder mehrere Zielfunktionen oder Streams weiterleiten. CloudWatch Events erkennt betriebliche Änderungen, sobald sie eintreten. Es reagiert auf diese betrieblichen Änderungen und ergreift bei Bedarf Korrekturmaßnahmen, indem es Nachrichten sendet, um auf die Umgebung zu reagieren, Funktionen aktiviert, Änderungen vornimmt und Statusinformationen erfasst. Sie können CloudWatch Ereignisse auch verwenden, um mithilfe von Cron - oder Rate-Ausdrücken automatisierte Aktionen zu planen, die zu bestimmten Zeiten von selbst ausgelöst werden.

  • AWSSecrets Manager hilft Ihnen dabei, Geheimnisse für den Zugriff auf Ihre Anwendungen, Dienste und IT-Ressourcen zu schützen. Sie können Datenbankanmeldedaten, API Schlüssel und andere Geheimnisse während ihres gesamten Lebenszyklus problemlos rotieren, verwalten und abrufen. Benutzer und Anwendungen rufen Geheimnisse ab, indem sie Secrets Manager aufrufen. Dadurch entfällt die NotwendigkeitAPIs, vertrauliche Informationen im Klartext fest zu codieren. Secrets Manager bietet geheime Rotation mit integrierter Integration für AmazonRDS, Amazon Redshift und Amazon DocumentDB. Der Service ist auf andere Arten von Geheimnissen, einschließlich API Schlüssel und Token, erweiterbar. OAuth Secrets Manager ermöglicht es Ihnen, den Zugriff auf geheime Daten mithilfe detaillierter Berechtigungen zu kontrollieren und die geheime Rotation für Ressourcen in der AWS Cloud, in Diensten von Drittanbietern und vor Ort zentral zu überwachen.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie einen Datenbankbenutzer für die Lambda-Funktion.

Es empfiehlt sich, separate Datenbankbenutzer für verschiedene Teile Ihrer Anwendung zu verwenden. Wenn für Ihre Cron-Jobs bereits ein separater Datenbankbenutzer existiert, verwenden Sie diesen. Andernfalls erstellen Sie einen neuen Datenbankbenutzer. Weitere Informationen finden Sie unter SQLPostgre-Benutzer und -Rollen verwalten (AWSBlogbeitrag).

DBA

Speichern Sie Datenbankanmeldedaten als geheim in Secrets Manager.

Folgen Sie den Anweisungen unter Create a database secret (Secrets Manager-Dokumentation).

DBA, DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Wählen Sie eine von AWS Lambda unterstützte Programmiersprache.

Eine Liste der unterstützten Sprachen finden Sie unter Lambda-Laufzeiten (Lambda-Dokumentation).

Developer

Schreiben Sie die Logik zum Abrufen der Datenbankanmeldedaten von Secrets Manager.

Beispielcode finden Sie unter So stellen Sie mithilfe von AWS Secrets Manager Datenbankanmeldedaten sicher für Lambda-Funktionen bereit (AWSBlogbeitrag).

Developer

Schreiben Sie die Logik zur Ausführung der geplanten Datenbankaktivität.

Migrieren Sie Ihren vorhandenen Code für den Scheduling-Job, den Sie vor Ort verwenden, auf die AWS Lambda-Funktion. Weitere Informationen finden Sie unter Deployment von Lambda-Funktionen (Lambda-Dokumentation).

Developer
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie das Lambda-Funktionsbereitstellungspaket.

Dieses Paket enthält den Code und seine Abhängigkeiten. Weitere Informationen finden Sie unter Bereitstellungspakete (Lambda-Dokumentation).

Developer

So erstellen Sie die Lambda-Funktion:

Wählen Sie in der AWS Lambda-Konsole Create function aus, geben Sie einen Funktionsnamen ein, wählen Sie die Laufzeitumgebung aus und wählen Sie dann Create function aus.

DevOps

Laden Sie das Bereitstellungspaket hoch.

Wählen Sie die Lambda-Funktion aus, die Sie erstellt haben, um ihre Konfiguration zu öffnen. Sie können Ihren Code direkt in den Codebereich schreiben oder Ihr Bereitstellungspaket hochladen. Um Ihr Paket hochzuladen, gehen Sie zum Abschnitt Funktionscode, wählen Sie den Eintragstyp Code aus, um eine ZIP-Datei hochzuladen, und wählen Sie dann das Paket aus.

DevOps

Konfigurieren Sie die Lambda-Funktion gemäß Ihren Anforderungen.

Sie können beispielsweise den Timeout-Parameter auf die Dauer festlegen, die Ihre Lambda-Funktion voraussichtlich dauern wird. Weitere Informationen finden Sie unter Konfiguration von Funktionsoptionen (Lambda-Dokumentation).

DevOps

Legen Sie die Berechtigungen für die Lambda-Funktionsrolle für den Zugriff auf Secrets Manager fest.

Anweisungen finden Sie unter Verwenden von Geheimnissen in AWS Lambda-Funktionen (Secrets Manager Manager-Dokumentation).

DevOps

Testen Sie die Lambda-Funktion.

Initiieren Sie die Funktion manuell, um sicherzustellen, dass sie wie erwartet funktioniert.

DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Regel, damit die Lambda-Funktion nach einem Zeitplan ausgeführt wird.

Planen Sie die Lambda-Funktion mithilfe von CloudWatch Events. Anweisungen finden Sie unter Lambda-Funktionen mithilfe von CloudWatch Ereignissen planen (CloudWatch Events-Tutorial).

DevOps

Zugehörige Ressourcen