AWS Glue interactieve sessies stelt ingenieurs in staat om werklasten voor gegevensvoorbereiding en analyse te bouwen, testen en uitvoeren in een interactieve notebook. Interactieve sessies bieden geïsoleerde ontwikkelomgevingen, zorgen voor het onderliggende rekencluster en maken configuratie mogelijk om inactieve bronnen te stoppen.
Glue interactieve sessies bieden standaard aanbevolen configuraties en stellen gebruikers ook in staat om pas de sessie aan om aan hun behoeften te voldoen. U kunt bijvoorbeeld meer werkkrachten inrichten om te experimenteren met een grotere dataset of de time-out voor inactiviteit instellen voor langlopende workloads. Met de flexibiliteit om deze opties te wijzigen, afhankelijk van de werklast, moet u er mogelijk voor zorgen dat de opties binnen specifieke grenzen worden gewijzigd en een controlemechanisme toepassen.
In dit bericht presenteren we het proces van het implementeren van een herbruikbare oplossing om AWS Glue interactieve sessielimieten af te dwingen voor drie opties: verbinding, aantal werknemers en maximale inactieve tijd. De eerste optie komt tegemoet aan de behoefte aan aangepaste inspectie en controles op verkeer, bijvoorbeeld door af te dwingen dat een interactieve sessie alleen binnen een VPC wordt uitgevoerd. De andere twee handhaven limieten op de kosten en het gebruik van AWS lijm middelen door een bovengrens af te dwingen voor het aantal werknemers en inactieve tijd per sessie. Je kunt de oplossing verder uitbreiden voor andere panden of diensten binnen AWS Glue.
Overzicht van de oplossing
De voorgestelde architectuur is gebouwd op serverloze componenten en wordt uitgevoerd wanneer een nieuwe interactieve AWS Glue-sessie wordt gemaakt.
De workflowstappen zijn als volgt:
- Een data-engineer maakt een nieuwe interactieve AWS Glue-sessie via de AWS-beheerconsole of lokaal in een Jupyter-notebook.
- De interactieve sessie produceert een nieuwe gebeurtenis voor AWS CloudTrail voor de
CreateSession
evenement met alle relevante informatie om een sessie te identificeren en te inspecteren zodra de sessie is gestart. - An Amazon EventBridge regel filtert de CloudTrail-gebeurtenissen en roept een AWS Lambda functie om de te inspecteren
CreateSession
evenement. - De Lambda-functie inspecteert de
CreateSession
gebeurtenis en controles voor alle gedefinieerde randvoorwaarden. Momenteel zijn de grenzen die met deze oplossing kunnen worden geconfigureerd, beperkt tot het maximum aantal werk nemers, time-out bij inactiviteit in minuten en implementatie met afgedwongen verbinding. - Als aan een van de gedefinieerde randvoorwaarden niet wordt voldaan, bijvoorbeeld als er te veel werknemers zijn ingericht voor de sessie, beëindigt de functie, afhankelijk van de opgegeven configuratie, de interactieve sessie onmiddellijk en stuurt een e-mail via Amazon eenvoudige meldingsservice (Amazone SNS). Als de sessie nog niet is gestart, wacht de functie totdat deze is gestart voordat er actie wordt ondernomen.
- Als de sessie is gestopt, wordt er een e-mail verzonden naar een SNS-onderwerp. Er is geen informatie beschikbaar in het interactieve sessienotitieblok over de reden voor het beëindigen van de sessie. Daarom wordt aanvullende contextinformatie via het SNS-onderwerp aan de data-engineers verstrekt.
- Als de functie mislukt, worden de sessies aangemeld in een wachtrij voor dode letters binnen Amazon Simple Queue-service (Amazone SQS). Bovendien wordt de wachtrij gecontroleerd en in het geval van een bericht zal het een Amazon Cloud Watch alarm.
De volgende stappen helpen u bij het bouwen en implementeren van de oplossing. De code is beschikbaar in de GitHub repo.
Voorwaarden
Voor deze walkthrough moet u aan de volgende vereisten voldoen:
Overzicht van de ingezette middelen
Alle benodigde middelen zijn gedefinieerd in een AWS CloudFormatie bestand onder cfn/template.yaml
. Om die middelen in te zetten, gebruiken we AWS serverloos toepassingsmodel (AWS SAM), waarmee we gemakkelijk alle afhankelijkheden kunnen bouwen en verpakken en ook de AWS CloudFormation-stappen voor ons kunnen beheren.
De CloudFormation-stack implementeert de volgende bronnen:
- Een Lambda-functie met zijn bibliotheek, beide gedefinieerd onder de directory src/functions. De functie is de controle. Het valideert dat de sessie is gestart binnen de gedefinieerde limieten.
- Een EventBridge-regel. Deze gebeurtenis luistert naar CloudTrail en activeert in het geval van een nieuwe interactieve sessie de controle Lambda-functie.
- Een SQS dode letter wachtrij (DLQ) gekoppeld aan de Lambda-functie. Dit houdt een register bij van gebeurtenissen die een Lambda-functiefout veroorzaakten.
- Twee CloudWatch-alarmen die de storingen van de Lambda-functie en de berichten in de DLQ bewaken.
Als kennisgeving via e-mail is ingeschakeld, worden er nog twee bronnen ingezet:
Bovendien implementeert AWS CloudFormation al het nodige AWS Identiteits- en toegangsbeheer (IAM) rollen en beleid, en een AWS Sleutelbeheerservice (AWS KMS) sleutel om ervoor te zorgen dat de uitgewisselde gegevens versleuteld zijn.
Implementeer de oplossing
Om de implementatielevenscyclus te vergemakkelijken, inclusief het instellen van de lokale gebruikersomgeving, bieden we een Makefile die alle noodzakelijke stappen beschrijft. Zorg ervoor dat uw AWS-referenties zijn vernieuwd en dat u toegang heeft tot uw account. Voor meer informatie, zie Configuratie- en referentiebestandsinstellingen.
- Verken de Makefile en pas de regio- en stapelnaam naar behoefte aan door de waarden van de variabelen te wijzigen
AWS_REGION
enSTACK_NAME
. - Zet de
KILL_SESSION = "True"
als u de interactieve sessie die buiten de grenzen is gevonden, onmiddellijk wilt stoppen. Toegestane waarden zijn True of False; de standaardwaarde is Waar. - Zet de
NOTIFICATION_EMAIL_ADDRESS = <your.email@provider.com>
in deMakefile
als u een melding wilt ontvangen wanneer een sessie buiten de grenzen is gevonden. - Stel waarden in voor uw bedieningselementen:
ENFORCE_VPC_CONNECTION
om te stoppen met sessies die niet worden uitgevoerd in een VPC (waar of niet waar).MAX_WORKERS
om het maximum aantal werknemers voor een sessie in te stellen (numeriek).MAX_IDLE_TIMEOUT_MINUTES
om de maximale inactieve tijd voor sessies in minuten te definiëren (numeriek).
- Installeer alle vereiste bibliotheken:
Deze zullen worden geïnstalleerd onder een nieuw gecreëerde virtuele Python-omgeving binnen deze repository in de directory
.venv
. - Implementeer de nieuwe stapel:
Met deze opdracht worden de volgende taken uitgevoerd:
- Controleer of aan de voorwaarden is voldaan.
- Uitvoeren
pytest unittest
op de Python-bestanden. - Valideer de CloudFormation-sjabloon.
- Bouw de artefacten (Lambda-functie en Lambda-lagen).
- Implementeer de middelen via AWS SAM.
Test de oplossing
Verwijzen naar Introductie van AWS Glue interactieve sessies voor Jupyter voor informatie over het uitvoeren van een interactieve sessie. Als u de instructies in de post volgt (zie de sectie Voer uw eerste codecel uit en schrijf uw AWS Glue-notebook), zou de initialisatie van de interactieve sessie moeten mislukken met een fout die lijkt op de volgende.
Voorbeeld van code in de cel:
Ontvangen uitvoer:
Als u de e-mailfunctie hebt ingeschakeld, zou u ook een e-mailmelding moeten ontvangen.
U kunt ook op de AWS Glue-console controleren of uw sessie-ID niet wordt vermeld.
Opruimen
Ruim de geïmplementeerde resources op door de volgende opdracht uit te voeren:
Merk op dat de middelen die zijn ingezet door het volgen van de aanbevolen post, Introductie van AWS Glue interactieve sessies voor Jupyter, wordt niet verwijderd met het vorige commando.
Beperkingen
De leveringsgarantie voor CloudTrail-evenementen aan EventBridge is best effort. Dit betekent dat CloudTrail zal proberen om alle gebeurtenissen aan EventBridge te leveren, maar in sommige zeldzame gevallen kan een gebeurtenis niet worden afgeleverd. Voor meer informatie, zie Gebeurtenissen van AWS-services.
Conclusie
In dit bericht wordt beschreven hoe een oplossing kan worden gebouwd, geïmplementeerd en getest om randvoorwaarden af te dwingen op interactieve AWS Glue-sessies om beperkingen op te leggen aan het aantal werknemers, time-outs bij inactiviteit en AWS Glue-verbinding.
U kunt deze oplossing aanpassen op basis van uw behoeften en verder uitbreiden om controle over andere opties mogelijk te maken.
Raadpleeg voor meer informatie over het gebruik van AWS Glue interactieve sessies Introductie van AWS Glue interactieve sessies voor Jupyter en Schrijf AWS Glue-taken met PyCharm met behulp van interactieve AWS Glue-sessies.
Over de auteurs
Nicolaas Jacob Baer is een Senior Cloud Application Architect met een sterke focus op data-engineering en machine learning, gevestigd in Zwitserland. Hij werkt nauw samen met zakelijke klanten om dataplatforms te ontwerpen en geavanceerde analytics/ml use-cases te bouwen.
Luca Mazzaferro is Senior DevOps Architect bij Amazon Web Services. Hij houdt ervan om infrastructuur geautomatiseerd, reproduceerbaar en beveiligd te hebben. In zijn vrije tijd kookt hij graag, vooral pizza.
Kemeng Zhang is een Cloud Application Architect met een sterke focus op machine learning en UX, gevestigd in Zwitserland. Ze werkt nauw samen met klanten om gebruikerservaringen te ontwerpen en geavanceerde analytics/ml use-cases te bouwen.
Mark Walser, een Senior Global Data Architect bij Amazon Web Services, werkt samen met klanten om innovatieve Big Data-oplossingen te ontwikkelen die zakelijke problemen oplossen en de acceptatie van AWS-services versnellen. Buiten zijn werk vindt hij plezier in hardlopen, zwemmen en alles wat met technologie te maken heeft.
Gal Heyne is een Product Manager voor AWS Glue met een sterke focus op AI/ML, data engineering en BI, gevestigd in Californië. Ze is gepassioneerd door het ontwikkelen van een diep begrip van de zakelijke behoeften van de klant en het samenwerken met ingenieurs om gebruiksvriendelijke dataproducten te ontwerpen.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: https://aws.amazon.com/blogs/big-data/enforce-boundaries-on-aws-glue-interactive-sessions/
- : heeft
- :is
- :niet
- $UP
- 1
- 10
- 100
- 7
- a
- Over
- toegang
- Account
- Actie
- aanpassen
- Extra
- adressen
- Adoptie
- vergevorderd
- AI / ML
- alarm
- Alles
- toelaten
- toegestaan
- toestaat
- ook
- Amazone
- Amazon Web Services
- an
- analytics
- en
- elke
- Aanvraag
- Solliciteer
- Het toepassen van
- architectuur
- ZIJN
- argumenten
- AS
- At
- auteur
- geautomatiseerde
- Beschikbaar
- AWS
- AWS CloudFormatie
- AWS lijm
- gebaseerde
- BE
- geweest
- vaardigheden
- BEST
- Groot
- Big data
- Blog
- zowel
- grenzen
- bouw
- bebouwd
- bedrijfsdeskundigen
- maar
- by
- Californië
- bellen
- CAN
- verzorging
- geval
- gevallen
- cel
- verandering
- veranderd
- controle
- Controles
- van nabij
- Cloud
- TROS
- code
- samenwerken
- compleet
- componenten
- Berekenen
- voorwaarden
- Configuratie
- versterken
- troosten
- beperkingen
- verband
- onder controle te houden
- controles
- Kosten
- en je merk te creëren
- aangemaakt
- creëert
- IDENTIFICATIE
- Geloofsbrieven
- Op dit moment
- gewoonte
- Klanten
- gegevens
- data engineer
- Data voorbereiding
- deep
- Standaard
- gedefinieerd
- leveren
- geleverd
- levering
- Afhankelijk
- implementeren
- ingezet
- het inzetten
- inzet
- ontplooit
- beschreven
- Design
- ontwikkelen
- het ontwikkelen van
- Ontwikkeling
- DevOps
- En het is heel gemakkelijk
- inspanning
- beide
- ingeschakeld
- maakt
- versleutelde
- eindigt
- afdwingen
- afdwingen
- ingenieur
- Engineering
- Ingenieurs
- verzekeren
- Enterprise
- zakelijke klanten
- Milieu
- omgevingen
- fout
- vooral
- Ether (ETH)
- Event
- EVENTS
- voorbeeld
- uitzondering
- uitgewisseld
- Ervaringen
- experiment
- verlengen
- vergemakkelijken
- FAIL
- mislukt
- Storing
- vals
- Kenmerk
- Dien in
- Bestanden
- filters
- vondsten
- Voornaam*
- Flexibiliteit
- Focus
- volgen
- volgend
- volgt
- Voor
- gevonden
- Gratis
- oppompen van
- functie
- verder
- Bovendien
- GAL
- krijgen
- Globaal
- garantie
- Hebben
- he
- zijn
- Hoe
- How To
- HTML
- http
- HTTPS
- IAM
- ID
- identificeren
- Identiteit
- Idle
- if
- per direct
- importeren
- in
- Inclusief
- informatie
- Infrastructuur
- geïnitieerd
- innovatieve
- binnen
- instructies
- interactieve
- in
- oproept
- geïsoleerd
- IT
- HAAR
- Jobomschrijving:
- Vacatures
- jpg
- Jupyter Notebook
- sleutel
- groter
- Legkippen
- LEARN
- leren
- bibliotheken
- Bibliotheek
- levenscyclus van uw product
- sympathieën
- Beperkt
- grenzen
- opgesomd
- lokaal
- plaatselijk
- gelegen
- ingelogd
- machine
- machine learning
- maken
- management
- manager
- beheert
- veel
- maximaal
- Mei..
- middel
- mechanisme
- Maak kennis met
- Bericht
- berichten
- voldaan
- macht
- minuten
- bewaakt
- Grensverkeer
- meer
- naam
- noodzakelijk
- Noodzaak
- nodig
- behoeften
- New
- onlangs
- geen
- notitieboekje
- notificatie
- aantal
- opgetreden
- of
- on
- Slechts
- operatie
- Keuze
- Opties
- or
- bestellen
- Overige
- uit
- uitgang
- buiten
- pakket
- hartstochtelijk
- voor
- Pizza
- platforms
- Plato
- Plato gegevensintelligentie
- PlatoData
- plezier
- beleidsmaatregelen door te lezen.
- Post
- voorbereiding
- vereisten
- presenteren
- vorig
- problemen
- produceert
- Product
- product manager
- Producten
- vastgoed
- voorgestelde
- zorgen voor
- mits
- biedt
- voorziening
- Python
- BIJZONDER
- klaar
- reden
- aanbevolen
- record
- regio
- verwant
- relevante
- verwijderd
- vernieuwd
- bewaarplaats
- Resources
- rollen
- Regel
- lopen
- lopend
- loopt
- Sam
- sectie
- Beveiligde
- zien
- verzendt
- senior
- verzonden
- Serverless
- Diensten
- Sessie
- sessies
- reeks
- setup
- ze
- moet
- gelijk
- Eenvoudig
- oplossing
- Oplossingen
- OPLOSSEN
- sommige
- Spoedig
- Vonk
- specifiek
- snelheid
- stack
- begin
- gestart
- Statement
- Status
- Stappen
- stop
- gestopt
- sterke
- zeker
- zwemmen
- Zwitserland
- Nemen
- het nemen
- taken
- Technologie
- sjabloon
- proef
- dat
- De
- hun
- Er.
- daarom
- Deze
- spullen
- dit
- die
- drie
- Door
- niet de tijd of
- naar
- ook
- onderwerp
- verkeer
- transformaties
- leiden
- veroorzaakt
- waar
- twee
- type dan:
- voor
- die ten grondslag liggen
- begrip
- us
- Gebruik
- .
- gebruiksgevallen
- Gebruiker
- gebruikers
- gebruik
- ux
- BEVESTIG
- Values
- via
- Virtueel
- wachten
- Het wachten
- walkthrough
- willen
- was
- we
- web
- webservices
- wanneer
- telkens als
- welke
- en
- wil
- Met
- binnen
- Mijn werk
- werker
- werknemers
- workflow
- Bedrijven
- nog
- u
- Your
- zephyrnet