AWS Glue interaktive økter tillate ingeniører å bygge, teste og kjøre dataforberedelse og analysearbeidsmengder i en interaktiv notatbok. Interaktive økter gir isolerte utviklingsmiljøer, tar vare på den underliggende dataklyngen og gir mulighet for konfigurasjon for å stoppe tomgang av ressurser.
Glue interaktive økter gir standard anbefalte konfigurasjoner, og lar brukere også tilpasse økten for å møte deres behov. Du kan for eksempel klargjøre flere arbeidere til å eksperimentere med et større datasett eller angi inaktiv tidsavbrudd for langvarige arbeidsbelastninger. Med fleksibiliteten til å endre disse alternativene avhengig av arbeidsmengden, må du kanskje sørge for at alternativene endres innenfor spesifikke grenser og bruke en kontrollmekanisme.
I dette innlegget presenterer vi prosessen med å distribuere en gjenbrukbar løsning for å håndheve grenser for interaktive AWS Glue-økter på tre alternativer: tilkobling, antall arbeidere og maksimal ledig tid. Det første alternativet adresserer behovet for å bruke tilpasset inspeksjon og kontroller på trafikk, for eksempel ved å påtvinge en interaktiv økt kun å kjøres inne i en VPC. De to andre håndhever grenser for kostnader og bruk av AWS Lim ressurser ved å håndheve en øvre grense for antall arbeidere og ledig tid per økt. Du kan utvide løsningen ytterligere for andre eiendommer eller tjenester innen AWS Glue.
Oversikt over løsning
Den foreslåtte arkitekturen er bygget på serverløse komponenter og kjører hver gang en ny interaktiv AWS Glue-sesjon opprettes.
Arbeidsflyttrinnene er som følger:
- En dataingeniør oppretter en ny interaktiv AWS Glue-sesjon enten gjennom AWS-administrasjonskonsoll eller i en Jupyter-notisbok lokalt.
- Den interaktive økten produserer en ny hendelse til AWS CloudTrail for
CreateSession
hendelse med all relevant informasjon for å identifisere og inspisere en økt så snart økten er startet. - An Amazon EventBridge regel filtrerer CloudTrail-hendelsene og påkaller en AWS Lambda funksjon for å inspisere
CreateSession
hendelse. - Lambda-funksjonen inspiserer
CreateSession
hendelse og sjekker for alle definerte grensebetingelser. For øyeblikket er grensene som kan konfigureres med denne løsningen begrenset til maksimalt antall arbeidere, inaktiv tidsavbrudd i minutter og utrulling med tilkobling påtvunget. - Hvis noen av de definerte grensebetingelsene ikke er oppfylt, for eksempel for mange arbeidere er klargjort for økten, avhengig av den angitte konfigurasjonen, avslutter funksjonen den interaktive økten umiddelbart og sender en e-post via Amazon enkel varslingstjeneste (Amazon SNS). Hvis økten ikke har startet ennå, vil funksjonen vente til den starter før den foretar seg noe.
- Hvis økten ble stoppet, sendes en e-post til et SNS-emne. Det er ingen tilgjengelig informasjon i den interaktive øktnotatboken om årsaken til at økten ble avsluttet. Derfor gis ytterligere kontekstinformasjon gjennom SNS-emnet til dataingeniørene.
- Hvis funksjonen mislykkes, logges øktene på a dødbokstavkø innsiden Amazon enkel køtjeneste (Amazon SQS). Videre overvåkes køen og i tilfelle en melding vil den utløse en Amazon CloudWatch alarm.
De følgende trinnene leder deg gjennom hvordan du bygger og distribuerer løsningen. Koden er tilgjengelig i GitHub repo.
Forutsetninger
For dette gjennomgangen bør du ha følgende forutsetninger:
Oversikt over de utplasserte ressursene
Alle nødvendige ressurser er definert i en AWS skyformasjon fil som ligger under cfn/template.yaml
. For å distribuere disse ressursene bruker vi AWS-serverløs applikasjonsmodell (AWS SAM), som gjør oss i stand til å enkelt bygge og pakke alle avhengighetene og også administrere AWS CloudFormation-trinnene for oss.
CloudFormation-stakken distribuerer følgende ressurser:
- En Lambda-funksjon med sitt bibliotek, begge definert under katalogen src/functions. Funksjonen er kontrollen. Den vil bekrefte at økten er startet innenfor de definerte grensene.
- En EventBridge-regel. Denne hendelsen lytter til CloudTrail og i tilfelle en ny interaktiv økt, vil den utløse kontroll Lambda-funksjonen.
- En SQS dødbokstavkø (DLQ) knyttet til Lambda-funksjonen. Dette fører en oversikt over hendelser som utløste en Lambda-funksjonsfeil.
- To CloudWatch-alarmer som overvåker Lambda-funksjonsfeilene og meldingene i DLQ.
Hvis varsling via e-post er aktivert, distribueres ytterligere to ressurser:
I tillegg distribuerer AWS CloudFormation alt nødvendig AWS identitets- og tilgangsadministrasjon (IAM) roller og retningslinjer, og en AWS nøkkelstyringstjeneste (AWS KMS) nøkkel for å sikre at de utvekslede dataene er kryptert.
Distribuere løsningen
For å forenkle livssyklusen for distribusjon, inkludert oppsettet av brukerens lokale miljø, tilbyr vi en Makefile som beskriver alle nødvendige trinn. Sørg for at du har fornyet AWS-legitimasjonen din og har tilgang til kontoen din. For mer informasjon, se Innstillinger for konfigurasjon og påloggingsfil.
- Utforsk Make-filen og juster regionen og stabelnavnet etter behov ved å endre verdiene til variablene
AWS_REGION
ogSTACK_NAME
. - Sett
KILL_SESSION = "True"
hvis du umiddelbart vil stoppe den interaktive økten som er funnet utenfor grensene. Tillatte verdier er True eller False; standard er True. - Sett
NOTIFICATION_EMAIL_ADDRESS = <your.email@provider.com>
iMakefile
hvis du vil bli varslet når en økt er funnet utenfor grensene. - Angi verdier for kontrollene dine:
ENFORCE_VPC_CONNECTION
for å stoppe økter som ikke kjører i en VPC (sant eller usant).MAX_WORKERS
for å angi maksimalt antall arbeidere for en økt (numerisk).MAX_IDLE_TIMEOUT_MINUTES
for å definere maksimal hviletid for økter i minutter (numerisk).
- Installer alle forutsetningsbibliotekene:
Disse vil bli installert under et nyopprettet Python-virtuelt miljø inne i dette depotet i katalogen
.venv
. - Distribuer den nye stabelen:
Denne kommandoen vil fullføre følgende oppgaver:
- Sjekk om forutsetningene er oppfylt.
- Utfør
pytest unittest
på Python-filene. - Valider CloudFormation-malen.
- Bygg artefaktene (Lambda-funksjon og Lambda-lag).
- Distribuer ressursene via AWS SAM.
Test løsningen
Referere til Vi introduserer interaktive AWS Glue-økter for Jupyter for informasjon om hvordan du kjører en interaktiv økt. Hvis du følger instruksjonene i innlegget (se avsnittet Kjør din første kodecelle og forfatt din AWS Glue-notatbok), bør initialiseringen av den interaktive økten mislykkes med en feil som ligner på følgende.
Eksempel på kode i cellen:
Mottatt utgang:
Hvis du har aktivert e-postfunksjonen, bør du også få et e-postvarsel.
Du kan også sjekke på AWS Glue-konsollen at økt-ID-en din ikke er oppført.
Rydd opp
Rydd opp i de distribuerte ressursene ved å kjøre følgende kommando:
Merk at ressursene som er distribuert fra å følge det anbefalte innlegget, Vi introduserer interaktive AWS Glue-økter for Jupyter, vil ikke bli fjernet med forrige kommando.
Begrensninger
Leveringsgarantien for CloudTrail-arrangementer til EventBridge er beste innsats. Dette betyr at CloudTrail vil forsøke å levere alle hendelser til EventBridge, men i noen sjeldne tilfeller kan det hende at en hendelse ikke blir levert. For mer informasjon, se Arrangementer fra AWS-tjenester.
konklusjonen
Dette innlegget beskrev hvordan man bygger, distribuerer og tester en løsning for å håndheve grensebetingelser på AWS Glue interaktive økter for å håndheve begrensninger på antall arbeidere, inaktive tidsavbrudd og AWS Glue-tilkobling.
Du kan tilpasse denne løsningen basert på dine behov og utvide den ytterligere for å tillate kontroller på andre alternativer.
For å lære mer om hvordan du bruker AWS Glue interaktive økter, se Vi introduserer interaktive AWS Glue-økter for Jupyter og Forfatter AWS Glue-jobber med PyCharm ved å bruke AWS Glue interaktive økter.
Om forfatterne
Nicolas Jacob Baer er en Senior Cloud Application Architect med sterkt fokus på datateknikk og maskinlæring, basert i Sveits. Han jobber tett med bedriftskunder for å designe dataplattformer og bygge avanserte analytics/ml use-cases.
Luca Mazzaferro er senior DevOps-arkitekt hos Amazon Web Services. Han liker å ha infrastruktur automatisert, reproduserbar og sikret. På fritiden liker han å lage mat, spesielt pizza.
Kemeng Zhang er en Cloud Application Architect med sterkt fokus på maskinlæring og UX, basert i Sveits. Hun jobber tett med kunder for å designe brukeropplevelser og bygge avanserte analytics/ml use-cases.
Mark Walser, en Senior Global Data Architect hos Amazon Web Services, samarbeider med kunder for å utvikle innovative Big Data-løsninger som løser forretningsproblemer og fremskynder bruken av AWS-tjenester. Utenom jobben finner han glede i løping, svømming og alt relatert til teknologi.
Gal Heyne er produktsjef for AWS Glue med sterkt fokus på AI/ML, datateknikk og BI, basert i California. Hun brenner for å utvikle en dyp forståelse av kundens forretningsbehov og samarbeide med ingeniører for å designe brukervennlige dataprodukter.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Bil / elbiler, Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- BlockOffsets. Modernisering av eierskap for miljøkompensasjon. Tilgang her.
- kilde: https://aws.amazon.com/blogs/big-data/enforce-boundaries-on-aws-glue-interactive-sessions/
- : har
- :er
- :ikke
- $OPP
- 1
- 10
- 100
- 7
- a
- Om oss
- adgang
- Logg inn
- Handling
- tilpasse
- Ytterligere
- adresser
- Adopsjon
- avansert
- AI / ML
- alarm
- Alle
- tillate
- tillatt
- tillater
- også
- Amazon
- Amazon Web Services
- an
- analytics
- og
- noen
- Søknad
- Påfør
- påføring
- arkitektur
- ER
- argumenter
- AS
- At
- forfatter
- Automatisert
- tilgjengelig
- AWS
- AWS skyformasjon
- AWS Lim
- basert
- BE
- vært
- før du
- BEST
- Stor
- Store data
- Blogg
- både
- grenser
- bygge
- bygget
- virksomhet
- men
- by
- california
- ringer
- CAN
- hvilken
- saken
- saker
- celle
- endring
- endret
- sjekk
- Sjekker
- tett
- Cloud
- Cluster
- kode
- samarbeider
- fullføre
- komponenter
- Beregn
- forhold
- Konfigurasjon
- tilkobling
- Konsoll
- begrensninger
- kontekst
- kontroll
- kontroller
- Kostnader
- skape
- opprettet
- skaper
- KREDENSISJON
- Credentials
- I dag
- skikk
- Kunder
- dato
- dataingeniør
- Dataklargjøring
- dyp
- Misligholde
- definert
- leverer
- levert
- levering
- avhengig
- utplassere
- utplassert
- utplasserings
- distribusjon
- Distribueres
- beskrevet
- utforming
- utvikle
- utvikle
- Utvikling
- DevOps
- lett
- innsats
- enten
- emalje
- aktivert
- muliggjør
- kryptert
- slutter
- håndheve
- håndheving
- ingeniør
- Ingeniørarbeid
- Ingeniører
- sikre
- Enterprise
- bedriftskunder
- Miljø
- miljøer
- feil
- spesielt
- Eter (ETH)
- Event
- hendelser
- eksempel
- unntak
- utvekslet
- Erfaringer
- eksperiment
- utvide
- legge til rette
- FAIL
- mislykkes
- Failure
- falsk
- Trekk
- filet
- Filer
- filtre
- funn
- Først
- fleksibilitet
- Fokus
- følge
- etter
- følger
- Til
- funnet
- Gratis
- fra
- funksjon
- videre
- Dess
- GAL
- få
- Global
- garantere
- Ha
- he
- hans
- Hvordan
- Hvordan
- HTML
- http
- HTTPS
- IAM
- ID
- identifisere
- Identitet
- Idle
- if
- umiddelbart
- importere
- in
- Inkludert
- informasjon
- Infrastruktur
- initiert
- innovative
- innsiden
- instruksjoner
- interaktiv
- inn
- påkaller
- isolert
- IT
- DET ER
- Jobb
- Jobb
- jpg
- Jupyter Notebook
- nøkkel
- større
- lag
- LÆRE
- læring
- bibliotekene
- Bibliotek
- Livssyklus
- liker
- Begrenset
- grenser
- oppført
- lokal
- lokalt
- ligger
- logget
- maskin
- maskinlæring
- gjøre
- ledelse
- leder
- forvalter
- mange
- maksimal
- Kan..
- midler
- mekanisme
- Møt
- melding
- meldinger
- møtte
- kunne
- minutter
- overvåket
- overvåking
- mer
- navn
- nødvendig
- Trenger
- nødvendig
- behov
- Ny
- nylig
- Nei.
- bærbare
- varsling
- Antall
- forekom
- of
- on
- bare
- drift
- Alternativ
- alternativer
- or
- rekkefølge
- Annen
- ut
- produksjon
- utenfor
- pakke
- lidenskapelig
- for
- Pizza
- Plattformer
- plato
- Platon Data Intelligence
- PlatonData
- glede
- Politikk
- Post
- forberedelse
- forutsetninger
- presentere
- forrige
- problemer
- prosess
- produserer
- Produkt
- Produktsjef
- Produkter
- egenskaper
- foreslått
- gi
- forutsatt
- gir
- forsyning
- Python
- SJELDEN
- klar
- grunnen til
- anbefales
- rekord
- region
- i slekt
- relevant
- fjernet
- fornyet
- Repository
- Ressurser
- roller
- Regel
- Kjør
- rennende
- går
- Sam
- Seksjon
- sikret
- se
- sender
- senior
- sendt
- server~~POS=TRUNC
- Tjenester
- Session
- sesjoner
- sett
- oppsett
- hun
- bør
- lignende
- Enkelt
- løsning
- Solutions
- LØSE
- noen
- Snart
- Spark
- spesifikk
- fart
- stable
- Begynn
- startet
- Uttalelse
- status
- Steps
- Stopp
- stoppet
- sterk
- sikker
- svømming
- sveits
- Ta
- ta
- oppgaver
- Teknologi
- mal
- test
- Det
- De
- deres
- Der.
- derfor
- Disse
- ting
- denne
- De
- tre
- Gjennom
- tid
- til
- også
- Tema
- trafikk
- transforme
- utløse
- utløst
- sant
- to
- typen
- etter
- underliggende
- forståelse
- us
- bruk
- bruke
- bruk-tilfeller
- Bruker
- Brukere
- ved hjelp av
- ux
- VALIDERE
- Verdier
- av
- virtuelle
- vente
- venter
- walkthrough
- ønsker
- var
- we
- web
- webtjenester
- når
- når som helst
- hvilken
- mens
- vil
- med
- innenfor
- Arbeid
- arbeidstaker
- arbeidere
- arbeidsflyt
- virker
- ennå
- du
- Din
- zephyrnet