AWS Glue interaktive sessioner tillade ingeniører at bygge, teste og køre dataforberedelse og analysearbejdsbelastninger i en interaktiv notesbog. Interaktive sessioner giver isolerede udviklingsmiljøer, tager sig af den underliggende computerklynge og giver mulighed for konfiguration for at stoppe tomgang af ressourcer.
Glue interaktive sessioner giver standard anbefalede konfigurationer og giver også brugere mulighed for det tilpasse sessionen at opfylde deres behov. Du kan f.eks. klargøre flere arbejdere til at eksperimentere med et større datasæt eller indstille den inaktive timeout for langvarige arbejdsbelastninger. Med fleksibiliteten til at ændre disse muligheder afhængigt af arbejdsbyrden skal du muligvis sikre dig, at mulighederne ændres inden for specifikke grænser og anvende en kontrolmekanisme.
I dette indlæg præsenterer vi processen med at implementere en genanvendelig løsning at håndhæve grænser for interaktive AWS Glue-sessioner på tre muligheder: forbindelse, antal arbejdere og maksimal ledig tid. Den første mulighed imødekommer behovet for at anvende tilpasset inspektion og kontrol af trafik, for eksempel ved at håndhæve en interaktiv session, der kun skal køres inde i en VPC. De to andre håndhæver grænser for omkostninger og brug af AWS Lim ressourcer ved at håndhæve en øvre grænse for antallet af arbejdere og ledig tid pr. session. Du kan udvide løsningen yderligere til andre ejendomme eller tjenester inden for AWS Glue.
Oversigt over løsning
Den foreslåede arkitektur er bygget på serverløse komponenter og kører hver gang en ny interaktiv AWS Glue-session oprettes.
Workflow-trinene er som følger:
- En dataingeniør opretter en ny interaktiv AWS Glue-session enten gennem AWS Management Console eller i en Jupyter notesbog lokalt.
- Den interaktive session producerer en ny begivenhed til AWS CloudTrail for
CreateSession
begivenhed med alle relevante oplysninger for at identificere og inspicere en session, så snart sessionen er påbegyndt. - An Amazon Eventbridge regel filtrerer CloudTrail-begivenhederne og påberåber en AWS Lambda funktion til at inspicere
CreateSession
tilfælde. - Lambda-funktionen inspicerer
CreateSession
hændelse og kontroller for alle definerede randbetingelser. I øjeblikket er grænserne, der kan konfigureres med denne løsning, begrænset til det maksimale antal arbejdere, inaktiv timeout i minutter og implementering med påtvunget forbindelse. - Hvis nogen af de definerede grænsebetingelser ikke er opfyldt, f.eks. er der klargjort for mange arbejdere til sessionen, afhængigt af den angivne konfiguration, afslutter funktionen den interaktive session med det samme og sender en e-mail via Amazon Simple Notification Service (Amazon SNS). Hvis sessionen ikke er startet endnu, vil funktionen vente på, at den starter, før der foretages nogen handling.
- Hvis sessionen blev stoppet, sendes en e-mail til et SNS-emne. Der er ingen tilgængelige oplysninger i den interaktive sessionsnotesbog om årsagen til sessionens afslutning. Derfor leveres yderligere kontekstinformation gennem SNS-emnet til dataingeniørerne.
- Hvis funktionen fejler, logges sessionerne på en dødbogstavskø indvendig Amazon Simple Queue Service (Amazon SQS). Endvidere overvåges køen og i tilfælde af en besked vil den udløse en amazoncloudwatch alarm.
De følgende trin leder dig gennem, hvordan du bygger og implementerer løsningen. Koden er tilgængelig i GitHub repo.
Forudsætninger
For denne gennemgang skal du have følgende forudsætninger:
Oversigt over de indsatte ressourcer
Alle de nødvendige ressourcer er defineret i en AWS CloudFormation fil placeret under cfn/template.yaml
. For at implementere disse ressourcer, bruger vi AWS serverløs applikationsmodel (AWS SAM), som gør os i stand til bekvemt at bygge og pakke alle afhængigheder og også administrere AWS CloudFormation-trinene for os.
CloudFormation-stakken implementerer følgende ressourcer:
- En Lambda-funktion med dets bibliotek, begge defineret under biblioteket src/functions. Funktionen er styringen. Det vil bekræfte, at sessionen er startet inden for de definerede grænser.
- En EventBridge-regel. Denne begivenhed lytter til CloudTrail og i tilfælde af en ny interaktiv session, vil den udløse lambda-kontrolfunktionen.
- En SQS dødbogstavskø (DLQ) knyttet til Lambda-funktionen. Dette holder en registrering af hændelser, der udløste en Lambda-funktionsfejl.
- To CloudWatch-alarmer, der overvåger Lambda-funktionsfejl og meddelelserne i DLQ.
Hvis underretning via e-mail er aktiveret, implementeres yderligere to ressourcer:
Derudover implementerer AWS CloudFormation alt det nødvendige AWS identitets- og adgangsstyring (IAM) roller og politikker, og en AWS Key Management Service (AWS KMS) nøgle for at sikre, at de udvekslede data er krypteret.
Implementer løsningen
For at lette implementeringens livscyklus, herunder opsætningen af brugerens lokale miljø, leverer vi en Makefile, der beskriver alle de nødvendige trin. Sørg for, at du har fornyet dine AWS-legitimationsoplysninger og har adgang til din konto. For mere information, se Indstillinger for konfiguration og legitimationsfil.
- Udforsk Make-filen og juster regionen og staknavnet efter behov ved at ændre værdierne af variablerne
AWS_REGION
,STACK_NAME
. - sæt
KILL_SESSION = "True"
hvis du straks vil stoppe den interaktive session, der er fundet uden for grænserne. Tilladte værdier er True eller False; standarden er True. - sæt
NOTIFICATION_EMAIL_ADDRESS = <your.email@provider.com>
iMakefile
hvis du vil få besked, når en session er fundet uden for grænserne. - Indstil værdier for dine kontroller:
ENFORCE_VPC_CONNECTION
at stoppe sessioner, der ikke kører i en VPC (sand eller falsk).MAX_WORKERS
for at indstille det maksimale antal arbejdere for en session (numerisk).MAX_IDLE_TIMEOUT_MINUTES
for at definere den maksimale inaktive tid for sessioner i minutter (numerisk).
- Installer alle de nødvendige biblioteker:
Disse vil blive installeret under et nyoprettet virtuelt Python-miljø inde i dette lager i mappen
.venv
. - Implementer den nye stak:
Denne kommando vil fuldføre følgende opgaver:
- Tjek om forudsætningerne er opfyldt.
- Udfør
pytest unittest
på Python-filerne. - Valider CloudFormation-skabelonen.
- Byg artefakterne (Lambda-funktion og Lambda-lag).
- Implementer ressourcerne via AWS SAM.
Test løsningen
Der henvises til Introduktion af AWS Glue interaktive sessioner til Jupyter for information om at køre en interaktiv session. Hvis du følger instruktionerne i indlægget (se afsnittet Kør din første kodecelle og forfatt din AWS Glue notesbog), bør initialiseringen af den interaktive session mislykkes med en fejl svarende til følgende.
Eksempel på kode i cellen:
Modtaget output:
Hvis du har aktiveret e-mail-funktionen, bør du også modtage en e-mail-meddelelse.
Du kan også kontrollere på AWS Glue-konsollen, at dit sessions-id ikke er angivet.
Ryd op
Ryd op i de installerede ressourcer ved at køre følgende kommando:
Bemærk, at de ressourcer, der er implementeret fra at følge det anbefalede indlæg, Introduktion af AWS Glue interaktive sessioner til Jupyter, vil ikke blive fjernet med den forrige kommando.
Begrænsninger
Leveringsgarantien for CloudTrail-begivenheder til EventBridge er den bedste indsats. Dette betyder, at CloudTrail vil forsøge at levere alle begivenheder til EventBridge, men i nogle sjældne tilfælde bliver en begivenhed muligvis ikke leveret. For mere information, se Begivenheder fra AWS-tjenester.
Konklusion
Dette indlæg beskrev, hvordan man bygger, implementerer og tester en løsning til at håndhæve grænsebetingelser på AWS Glue interaktive sessioner for at håndhæve begrænsninger på antallet af arbejdere, inaktive timeouts og AWS Glue-forbindelse.
Du kan tilpasse denne løsning baseret på dine behov og udvide den yderligere for at tillade kontrol med andre muligheder.
For at lære mere om, hvordan du bruger AWS Glue interaktive sessioner, se Introduktion af AWS Glue interaktive sessioner til Jupyter , Forfatter AWS Glue jobs med PyCharm ved hjælp af AWS Glue interaktive sessioner.
Om forfatterne
Nicolas Jacob Bær er en Senior Cloud Application Architect med et stærkt fokus på datateknik og maskinlæring, baseret i Schweiz. Han arbejder tæt sammen med virksomhedskunder for at designe dataplatforme og bygge avancerede analytics/ml use-cases.
Luca Mazzaferro er Senior DevOps Architect hos Amazon Web Services. Han kan lide at have infrastruktur automatiseret, reproducerbar og sikret. I sin fritid kan han godt lide at lave mad, især pizza.
Kemeng Zhang er en Cloud Application Architect med et stærkt fokus på machine learning og UX, baseret i Schweiz. Hun arbejder tæt sammen med kunder om at designe brugeroplevelser og opbygge avancerede analytics/ml use-cases.
Mark Walser, en Senior Global Data Architect hos Amazon Web Services, samarbejder med kunder om at udvikle innovative Big Data-løsninger, der løser forretningsproblemer og fremskynder adoptionen af AWS-tjenester. Uden for arbejdet finder han glæde i løb, svømning og alle ting, der er relateret til teknologi.
Gal Heyne er produktchef for AWS Glue med stort fokus på AI/ML, datateknik og BI med base i Californien. Hun brænder for at udvikle en dyb forståelse af kundens forretningsbehov og samarbejde med ingeniører om at designe brugervenlige dataprodukter.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/big-data/enforce-boundaries-on-aws-glue-interactive-sessions/
- :har
- :er
- :ikke
- $OP
- 1
- 10
- 100
- 7
- a
- Om
- adgang
- Konto
- Handling
- tilpasse
- Yderligere
- adresser
- Vedtagelse
- fremskreden
- AI / ML
- alarm
- Alle
- tillade
- tilladt
- tillader
- også
- Amazon
- Amazon Web Services
- an
- analytics
- ,
- enhver
- Anvendelse
- Indløs
- Anvendelse
- arkitektur
- ER
- argumenter
- AS
- At
- forfatter
- Automatiseret
- til rådighed
- AWS
- AWS CloudFormation
- AWS Lim
- baseret
- BE
- været
- før
- BEDSTE
- Big
- Big data
- Blog
- både
- grænser
- bygge
- bygget
- virksomhed
- men
- by
- california
- ringer
- CAN
- hvilken
- tilfælde
- tilfælde
- celle
- lave om
- ændret
- kontrollere
- Kontrol
- nøje
- Cloud
- Cluster
- kode
- samarbejde
- fuldføre
- komponenter
- Compute
- betingelser
- Konfiguration
- tilslutning
- Konsol
- begrænsninger
- sammenhæng
- kontrol
- kontrol
- Omkostninger
- skabe
- oprettet
- skaber
- KREDENTIAL
- Legitimationsoplysninger
- For øjeblikket
- skik
- Kunder
- data
- dataingeniør
- Dataforberedelse
- dyb
- Standard
- definerede
- levere
- leveret
- levering
- Afhængigt
- indsætte
- indsat
- implementering
- implementering
- udruller
- beskrevet
- Design
- udvikle
- udvikling
- Udvikling
- DevOps
- let
- indsats
- enten
- aktiveret
- muliggør
- krypteret
- ender
- håndhæve
- håndhæve
- ingeniør
- Engineering
- Ingeniører
- sikre
- Enterprise
- virksomhedskunder
- Miljø
- miljøer
- fejl
- især
- Ether (ETH)
- begivenhed
- begivenheder
- eksempel
- undtagelse
- udveksles
- Oplevelser
- eksperiment
- udvide
- lette
- FAIL
- mislykkes
- Manglende
- falsk
- Feature
- File (Felt)
- Filer
- Filtre
- fund
- Fornavn
- Fleksibilitet
- Fokus
- følger
- efter
- følger
- Til
- fundet
- Gratis
- fra
- funktion
- yderligere
- Endvidere
- GAL
- få
- Global
- garanti
- Have
- he
- hans
- Hvordan
- How To
- HTML
- http
- HTTPS
- IAM
- ID
- identificere
- Identity
- tomgang
- if
- straks
- importere
- in
- Herunder
- oplysninger
- Infrastruktur
- indledt
- innovativ
- indvendig
- anvisninger
- interaktiv
- ind
- påberåber sig
- isolerede
- IT
- ITS
- Job
- Karriere
- jpg
- Jupyter Notebook
- Nøgle
- større
- lag
- LÆR
- læring
- biblioteker
- Bibliotek
- livscyklus
- synes godt om
- Limited
- grænser
- Børsnoterede
- lokale
- lokalt
- placeret
- logget
- maskine
- machine learning
- lave
- ledelse
- leder
- administrerer
- mange
- maksimal
- Kan..
- midler
- mekanisme
- Mød
- besked
- beskeder
- mødte
- måske
- minutter
- overvåges
- overvågning
- mere
- navn
- nødvendig
- Behov
- behov
- behov
- Ny
- nyligt
- ingen
- notesbog
- underretning
- nummer
- forekom
- of
- on
- kun
- drift
- Option
- Indstillinger
- or
- ordrer
- Andet
- ud
- output
- uden for
- pakke
- lidenskabelige
- per
- Pizza
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- glæde
- politikker
- Indlæg
- forberedelse
- forudsætninger
- præsentere
- tidligere
- problemer
- behandle
- producerer
- Produkt
- produktchef
- Produkter
- egenskaber
- foreslog
- give
- forudsat
- giver
- bestemmelse
- Python
- SJÆLDEN
- klar
- grund
- anbefales
- optage
- region
- relaterede
- relevant
- fjernet
- fornyet
- Repository
- Ressourcer
- roller
- Herske
- Kør
- kører
- løber
- Sam
- Sektion
- Sikret
- se
- sender
- senior
- sendt
- Serverless
- Tjenester
- Session
- sessioner
- sæt
- setup
- hun
- bør
- lignende
- Simpelt
- løsninger
- Løsninger
- SOLVE
- nogle
- Snart
- Spark
- specifikke
- hastighed
- stable
- starte
- påbegyndt
- Statement
- Status
- Steps
- Stands
- stoppet
- stærk
- sikker
- svømning
- Schweiz
- Tag
- tager
- opgaver
- Teknologier
- skabelon
- prøve
- at
- deres
- Der.
- derfor
- Disse
- ting
- denne
- dem
- tre
- Gennem
- tid
- til
- også
- emne
- Trafik
- transformationer
- udløse
- udløst
- sand
- to
- typen
- under
- underliggende
- forståelse
- us
- Brug
- brug
- brugssager
- Bruger
- brugere
- ved brug af
- ux
- VALIDATE
- Værdier
- via
- Virtual
- vente
- Venter
- går igennem
- ønsker
- var
- we
- web
- webservices
- hvornår
- når
- som
- mens
- vilje
- med
- inden for
- Arbejde
- arbejdstager
- arbejdere
- workflow
- virker
- endnu
- dig
- Din
- zephyrnet