Interaktive AWS Glue-Sitzungen Ermöglichen Sie Ingenieuren das Erstellen, Testen und Ausführen von Datenvorbereitungs- und Analyse-Workloads in einem interaktiven Notebook. Interaktive Sitzungen stellen isolierte Entwicklungsumgebungen bereit, kümmern sich um den zugrunde liegenden Rechencluster und ermöglichen eine Konfiguration, um ungenutzte Ressourcen zu stoppen.
Interaktive Glue-Sitzungen bieten empfohlene Standardkonfigurationen und ermöglichen Benutzern dies auch Passen Sie die Sitzung an um ihre Bedürfnisse zu erfüllen. Sie können beispielsweise mehr Arbeitskräfte bereitstellen, um mit einem größeren Datensatz zu experimentieren, oder das Leerlaufzeitlimit für Arbeitslasten mit langer Laufzeit festlegen. Da Sie diese Optionen je nach Arbeitslast flexibel ändern können, müssen Sie möglicherweise sicherstellen, dass die Optionen innerhalb bestimmter Grenzen geändert werden, und einen Kontrollmechanismus anwenden.
In diesem Beitrag stellen wir den Prozess der Bereitstellung von a vor wiederverwendbare Lösung um interaktive AWS Glue-Sitzungslimits für drei Optionen durchzusetzen: Verbindung, Anzahl der Worker und maximale Leerlaufzeit. Die erste Option befasst sich mit der Notwendigkeit, benutzerdefinierte Inspektionen und Kontrollen auf den Datenverkehr anzuwenden, indem beispielsweise erzwungen wird, dass eine interaktive Sitzung nur innerhalb einer VPC ausgeführt wird. Die anderen beiden erzwingen Kosten- und Nutzungsbeschränkungen AWS-Kleber Ressourcen durch die Durchsetzung einer Obergrenze für die Anzahl der Arbeiter und die Leerlaufzeit pro Sitzung. Sie können die Lösung für andere Eigenschaften oder Dienste innerhalb von AWS Glue weiter erweitern.
Lösungsübersicht
Die vorgeschlagene Architektur basiert auf serverlosen Komponenten und wird immer dann ausgeführt, wenn eine neue interaktive AWS Glue-Sitzung erstellt wird.
Die Arbeitsschritte sind wie folgt:
- Ein Dateningenieur erstellt entweder über das eine neue interaktive AWS Glue-Sitzung AWS-Managementkonsole oder lokal in einem Jupyter-Notebook.
- Die interaktive Sitzung erzeugt ein neues Ereignis AWS CloudTrail für die
CreateSession
Ereignis mit allen relevanten Informationen, um eine Sitzung zu identifizieren und zu überprüfen, sobald die Sitzung gestartet wird. - An Amazon EventBridge Die Regel filtert die CloudTrail-Ereignisse und ruft eine auf AWS Lambda Funktion zur Inspektion der
CreateSession
Ereignis. - Die Lambda-Funktion überprüft die
CreateSession
Ereignis und prüft alle definierten Randbedingungen. Derzeit sind die mit dieser Lösung konfigurierbaren Grenzen auf die maximale Anzahl von Workern, das Leerlaufzeitlimit in Minuten und die Bereitstellung mit erzwungener Verbindung beschränkt. - Wenn eine der definierten Randbedingungen nicht erfüllt ist, beispielsweise je nach bereitgestellter Konfiguration zu viele Worker für die Sitzung bereitgestellt werden, beendet die Funktion die interaktive Sitzung sofort und sendet eine E-Mail an Amazon Simple Notification Service (Amazon SNS). Wenn die Sitzung noch nicht gestartet ist, wartet die Funktion auf den Start, bevor sie Maßnahmen ergreift.
- Wenn die Sitzung beendet wurde, wird eine E-Mail an ein SNS-Thema gesendet. Über den Grund für die Beendigung der Sitzung sind im interaktiven Sitzungsnotizbuch keine Informationen verfügbar. Daher werden den Dateningenieuren über das SNS-Thema zusätzliche Kontextinformationen bereitgestellt.
- Wenn die Funktion fehlschlägt, werden die Sitzungen protokolliert Warteschlange für unzustellbare Nachrichten innerhalb Amazon Simple Queue-Dienst (Amazon SQS). Darüber hinaus wird die Warteschlange überwacht und im Falle einer Nachricht eine Meldung ausgelöst Amazon CloudWatch Alarm.
Die folgenden Schritte führen Sie durch die Erstellung und Bereitstellung der Lösung. Der Code ist im verfügbar GitHub Repo.
Voraussetzungen:
Für diese exemplarische Vorgehensweise sollten Sie die folgenden Voraussetzungen erfüllen:
Übersicht über die eingesetzten Ressourcen
Alle notwendigen Ressourcen sind in einer definiert AWS CloudFormation Datei befindet sich unter cfn/template.yaml
. Um diese Ressourcen bereitzustellen, verwenden wir AWS Serverless-Anwendungsmodell (AWS SAM), das es uns ermöglicht, alle Abhängigkeiten bequem zu erstellen und zu verpacken und auch die AWS CloudFormation-Schritte für uns verwaltet.
Der CloudFormation-Stack stellt die folgenden Ressourcen bereit:
- Eine Lambda-Funktion mit ihrer Bibliothek, beide definiert im Verzeichnis src/functions. Die Funktion ist die Steuerung. Dadurch wird überprüft, ob die Sitzung innerhalb der definierten Grenzen gestartet wird.
- Eine EventBridge-Regel. Dieses Ereignis hört auf CloudTrail und löst im Falle einer neuen interaktiven Sitzung die Lambda-Steuerungsfunktion aus.
- Eine SQS-Warteschlange für unzustellbare Nachrichten (DLQ), die an die Lambda-Funktion angehängt ist. Dadurch werden Ereignisse aufgezeichnet, die einen Lambda-Funktionsfehler ausgelöst haben.
- Zwei CloudWatch-Alarme überwachen die Lambda-Funktionsfehler und die Meldungen im DLQ.
Wenn die Benachrichtigung per E-Mail aktiviert ist, werden zwei weitere Ressourcen bereitgestellt:
Darüber hinaus stellt AWS CloudFormation alles Notwendige bereit AWS Identity and Access Management and (IAM) Rollen und Richtlinien und eine AWS-Schlüsselverwaltungsservice (AWS KMS)-Schlüssel, um sicherzustellen, dass die ausgetauschten Daten verschlüsselt sind.
Stellen Sie die Lösung bereit
Um den Bereitstellungslebenszyklus, einschließlich der Einrichtung der lokalen Benutzerumgebung, zu erleichtern, stellen wir ein Makefile bereit, das alle notwendigen Schritte beschreibt. Stellen Sie sicher, dass Sie Ihre AWS-Anmeldeinformationen erneuert haben und Zugriff auf Ihr Konto haben. Weitere Informationen finden Sie unter Einstellungen der Konfigurations- und Anmeldeinformationsdatei.
- Erkunden Sie das Makefile und passen Sie die Region und den Stack-Namen nach Bedarf an, indem Sie die Werte der Variablen ändern
AWS_REGION
undSTACK_NAME
. - Sept
KILL_SESSION = "True"
wenn Sie die interaktive Sitzung, die außerhalb der Grenzen festgestellt wurde, sofort beenden möchten. Zulässige Werte sind „True“ oder „False“. Der Standardwert ist True. - Sept
NOTIFICATION_EMAIL_ADDRESS = <your.email@provider.com>
derMakefile
Wenn Sie benachrichtigt werden möchten, wenn festgestellt wird, dass eine Sitzung außerhalb der Grenzen liegt. - Legen Sie Werte für Ihre Steuerelemente fest:
ENFORCE_VPC_CONNECTION
um Sitzungen zu stoppen, die nicht innerhalb einer VPC ausgeführt werden (wahr oder falsch).MAX_WORKERS
um die maximale Anzahl von Arbeitern für eine Sitzung festzulegen (numerisch).MAX_IDLE_TIMEOUT_MINUTES
um die maximale Leerlaufzeit für Sitzungen in Minuten (numerisch) zu definieren.
- Installieren Sie alle erforderlichen Bibliotheken:
Diese werden unter einer neu erstellten virtuellen Python-Umgebung in diesem Repository im Verzeichnis installiert
.venv
. - Stellen Sie den neuen Stack bereit:
Dieser Befehl führt die folgenden Aufgaben aus:
- Prüfen Sie, ob die Voraussetzungen erfüllt sind.
- Ausführen
pytest unittest
auf den Python-Dateien. - Validieren Sie die CloudFormation-Vorlage.
- Erstellen Sie die Artefakte (Lambda-Funktion und Lambda-Ebenen).
- Stellen Sie die Ressourcen über AWS SAM bereit.
Testen Sie die Lösung
Beziehen auf Einführung interaktiver AWS Glue-Sitzungen für Jupyter Weitere Informationen zum Ausführen einer interaktiven Sitzung finden Sie hier. Wenn Sie den Anweisungen im Beitrag folgen (siehe Abschnitt Führen Sie Ihre erste Codezelle aus und erstellen Sie Ihr AWS Glue-Notebook), sollte die Initialisierung der interaktiven Sitzung mit einem Fehler ähnlich dem folgenden fehlschlagen.
Beispielcode in der Zelle:
Erhaltene Ausgabe:
Wenn Sie die E-Mail-Funktion aktiviert haben, sollten Sie auch eine E-Mail-Benachrichtigung erhalten.
Sie können auch in der AWS Glue-Konsole überprüfen, ob Ihre Sitzungs-ID nicht aufgeführt ist.
Aufräumen
Bereinigen Sie die bereitgestellten Ressourcen, indem Sie den folgenden Befehl ausführen:
Beachten Sie, dass die bereitgestellten Ressourcen aus der Befolgung des empfohlenen Beitrags stammen. Einführung interaktiver AWS Glue-Sitzungen für Jupyter, wird mit dem vorherigen Befehl nicht entfernt.
Einschränkungen
Die Liefergarantie für CloudTrail-Events an EventBridge erfolgt nach bestem Wissen und Gewissen. Dies bedeutet, dass CloudTrail versucht, alle Ereignisse an EventBridge zu übermitteln. In einigen seltenen Fällen kann es jedoch vorkommen, dass ein Ereignis nicht übermittelt wird. Weitere Informationen finden Sie unter Ereignisse von AWS-Services.
Zusammenfassung
In diesem Beitrag wurde beschrieben, wie Sie eine Lösung erstellen, bereitstellen und testen, um Randbedingungen für interaktive AWS Glue-Sitzungen durchzusetzen, um Einschränkungen für die Anzahl der Worker, Leerlaufzeitüberschreitungen und die AWS Glue-Verbindung durchzusetzen.
Sie können diese Lösung an Ihre Bedürfnisse anpassen und weiter erweitern, um die Steuerung anderer Optionen zu ermöglichen.
Weitere Informationen zur Verwendung interaktiver AWS Glue-Sitzungen finden Sie unter Einführung interaktiver AWS Glue-Sitzungen für Jupyter und Erstellen Sie AWS Glue-Jobs mit PyCharm mithilfe von interaktiven AWS Glue-Sitzungen.
Über die Autoren
Nicolas Jacob Bär ist ein Senior Cloud Application Architect mit starkem Fokus auf Data Engineering und maschinelles Lernen mit Sitz in der Schweiz. Er arbeitet eng mit Unternehmenskunden zusammen, um Datenplattformen zu entwerfen und fortschrittliche Analyse-/ml-Anwendungsfälle zu entwickeln.
Luca Mazzaferro ist Senior DevOps Architect bei Amazon Web Services. Er möchte, dass die Infrastruktur automatisiert, reproduzierbar und gesichert ist. In seiner Freizeit kocht er gerne, insbesondere Pizza.
Kemeng Zhang ist ein Cloud-Anwendungsarchitekt mit starkem Fokus auf maschinelles Lernen und UX mit Sitz in der Schweiz. Sie arbeitet eng mit Kunden zusammen, um Benutzererlebnisse zu entwerfen und erweiterte Analyse-/ML-Anwendungsfälle zu entwickeln.
Mark Walser, Senior Global Data Architect bei Amazon Web Services, arbeitet mit Kunden zusammen, um innovative Big-Data-Lösungen zu entwickeln, die Geschäftsprobleme lösen und die Einführung von AWS-Services beschleunigen. Außerhalb der Arbeit liebt er Laufen, Schwimmen und alles, was mit Technik zu tun hat.
Gal Heyne ist ein Produktmanager für AWS Glue mit einem starken Fokus auf KI/ML, Datentechnik und BI, ansässig in Kalifornien. Ihre Leidenschaft liegt darin, ein tiefes Verständnis für die Geschäftsanforderungen der Kunden zu entwickeln und mit Ingenieuren zusammenzuarbeiten, um benutzerfreundliche Datenprodukte zu entwickeln.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoData.Network Vertikale generative KI. Motiviere dich selbst. Hier zugreifen.
- PlatoAiStream. Web3-Intelligenz. Wissen verstärkt. Hier zugreifen.
- PlatoESG. Automobil / Elektrofahrzeuge, Kohlenstoff, CleanTech, Energie, Umwelt, Solar, Abfallwirtschaft. Hier zugreifen.
- BlockOffsets. Modernisierung des Eigentums an Umweltkompensationen. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/big-data/enforce-boundaries-on-aws-glue-interactive-sessions/
- :hast
- :Ist
- :nicht
- $UP
- 1
- 10
- 100
- 7
- a
- Über Uns
- Zugang
- Konto
- Action
- automatisch
- Zusätzliche
- Adressen
- Adoption
- advanced
- AI / ML
- Alarm
- Alle
- erlauben
- erlaubt
- erlaubt
- ebenfalls
- Amazon
- Amazon Web Services
- an
- Analytik
- und
- jedem
- Anwendung
- Bewerben
- Anwendung
- Architektur
- SIND
- Argumente
- AS
- At
- Autor
- Automatisiert
- verfügbar
- AWS
- AWS CloudFormation
- AWS-Kleber
- basierend
- BE
- war
- Bevor
- BESTE
- Big
- Big Data
- Blog
- beide
- Grenzen
- bauen
- erbaut
- Geschäft
- aber
- by
- Kalifornien
- Aufruf
- CAN
- österreichische Unternehmen
- Häuser
- Fälle
- Zelle
- Übernehmen
- geändert
- aus der Ferne überprüfen
- Schecks
- eng
- Cloud
- Cluster
- Code
- Zusammenarbeit
- abschließen
- Komponenten
- Berechnen
- Bedingungen
- Konfiguration
- Verbindung
- Konsul (Console)
- Einschränkungen
- Kontext
- Smartgeräte App
- Steuerung
- Kosten
- erstellen
- erstellt
- schafft
- KREDENTIAL
- Referenzen
- Zur Zeit
- Original
- Kunden
- technische Daten
- Dateningenieur
- Datenaufbereitung
- tief
- Standard
- definiert
- Übergeben
- geliefert
- Lieferanten
- Abhängig
- einsetzen
- Einsatz
- Bereitstellen
- Einsatz
- setzt ein
- beschrieben
- Design
- entwickeln
- Entwicklung
- Entwicklung
- DevOps
- Einfache
- Anstrengung
- entweder
- freigegeben
- ermöglicht
- verschlüsselt
- endet
- erzwingen
- Durchsetzung
- Ingenieur
- Entwicklung
- Ingenieure
- gewährleisten
- Unternehmen
- Unternehmenskunden
- Arbeitsumfeld
- Umgebungen
- Fehler
- insbesondere
- Äther (ETH)
- Event
- Veranstaltungen
- Beispiel
- Ausnahme
- ausgetauscht
- Erfahrungen
- Experiment
- erweitern
- erleichtern
- FAIL
- scheitert
- Scheitern
- falsch
- Merkmal
- Reichen Sie das
- Mappen
- Filter
- findet
- Vorname
- Flexibilität
- Setzen Sie mit Achtsamkeit
- folgen
- Folgende
- folgt
- Aussichten für
- gefunden
- Frei
- für
- Funktion
- weiter
- Außerdem
- GAL
- bekommen
- Global
- Garantie
- Haben
- he
- seine
- Ultraschall
- Hilfe
- HTML
- http
- HTTPS
- IAM
- ID
- identifizieren
- Identitätsschutz
- Leerlauf
- if
- sofort
- importieren
- in
- Einschließlich
- Information
- Infrastruktur
- initiiert
- innovativ
- innerhalb
- Anleitung
- interaktive
- in
- ruft auf
- isoliert
- IT
- SEINE
- Job
- Jobs
- jpg
- Jupyter Notizbuch
- Wesentliche
- größer
- Lagen
- LERNEN
- lernen
- Bibliotheken
- Bibliothek
- Lebenszyklus
- Gleichen
- Limitiert
- Grenzen
- Gelistet
- aus einer regionalen
- örtlich
- located
- protokolliert
- Maschine
- Maschinelles Lernen
- um
- Management
- Manager
- Managed
- viele
- maximal
- Kann..
- Mittel
- Mechanismus
- Triff
- Nachricht
- Nachrichten
- versiegelte
- könnte
- Minuten
- überwacht
- Überwachung
- mehr
- Name
- notwendig,
- Need
- erforderlich
- Bedürfnisse
- Neu
- neu
- nicht
- Notizbuch
- Benachrichtigung
- Anzahl
- aufgetreten
- of
- on
- einzige
- Betrieb
- Option
- Optionen
- or
- Auftrag
- Andere
- Möglichkeiten für das Ausgangssignal:
- aussen
- Paket
- leidenschaftlich
- für
- Pizza
- Plattformen
- Plato
- Datenintelligenz von Plato
- PlatoData
- Vergnügen
- Politik durchzulesen
- Post
- Vorbereitung
- Voraussetzungen
- Gegenwart
- früher
- Probleme
- Prozessdefinierung
- produziert
- Produkt
- Produkt-Manager
- Produkte
- immobilien
- vorgeschlage
- die
- vorausgesetzt
- bietet
- Bereitstellung
- Python
- RARE
- bereit
- Grund
- empfohlen
- Rekord
- Region
- bezogene
- relevant
- Entfernt
- erneuert
- Quelle
- Downloads
- Rollen
- Regel
- Führen Sie
- Laufen
- läuft
- Sam
- Abschnitt
- Gesicherte
- sehen
- sendet
- Senior
- geschickt
- Serverlos
- Lösungen
- Sitzung
- Sessions
- kompensieren
- Setup
- sie
- sollte
- ähnlich
- Einfacher
- Lösung
- Lösungen
- LÖSEN
- einige
- Bald
- Spark
- spezifisch
- Geschwindigkeit
- Stapel
- Anfang
- begonnen
- Erklärung
- Status
- Shritte
- Stoppen
- gestoppt
- stark
- sicher
- Schwimmen
- Schweiz
- Nehmen
- Einnahme
- und Aufgaben
- Technologie
- Vorlage
- Test
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- ihr
- Dort.
- deswegen
- Diese
- fehlen uns die Worte.
- diejenigen
- nach drei
- Durch
- Zeit
- zu
- auch
- Thema
- der Verkehr
- Transformationen
- auslösen
- ausgelöst
- was immer dies auch sein sollte.
- XNUMX
- tippe
- für
- zugrunde liegen,
- Verständnis
- us
- Anwendungsbereich
- -
- Anwendungsfälle
- Mitglied
- Nutzer
- Verwendung von
- ux
- BESTÄTIGEN
- Werte
- Assistent
- warten
- Warten
- Walkthrough
- wollen
- wurde
- we
- Netz
- Web-Services
- wann
- sobald
- welche
- während
- werden wir
- mit
- .
- Arbeiten
- Arbeiter
- Arbeiter
- Arbeitsablauf.
- Werk
- noch
- U
- Ihr
- Zephyrnet