I dette indlæg demonstrerer vi automatisering af implementering af Amazon administrerede arbejdsgange til Apache Airflow (Amazon MWAA) ved hjælp af kundeadministrerede slutpunkter i en VPC, hvilket giver kompatibilitet med delte eller på anden måde begrænsede VPC'er.
Data videnskabsmænd og ingeniører har lavet Apache luftstrøm et førende open source-værktøj til at skabe datapipelines på grund af dets aktive open source-fællesskab, velkendte Python-udvikling som Directed Acyclic Graph (DAG) arbejdsgange og omfattende bibliotek af forudbyggede integrationer. Amazon MWAA er en administreret service til Airflow, der gør det nemt at køre Airflow på AWS uden den operationelle byrde ved at skulle administrere den underliggende infrastruktur. For hvert Airflow-miljø opretter Amazon MWAA en enkelt lejer-tjeneste VPC, som er vært for metadatabasen, der gemmer tilstande og webserveren, der leverer brugergrænsefladen. Amazon MWAA administrerer yderligere Airflow-planlægnings- og arbejderforekomster i en kundeejet og administreret VPC for at planlægge og køre opgaver, der interagerer med kunders ressourcer. Disse luftstrømsbeholdere i kundens VPC får adgang til ressourcer i tjenesten VPC via en VPC-endepunkt.
Mange organisationer vælger at centralt administrere deres VPC ved brug af AWS-organisationer, hvilket gør det muligt for en VPC på en ejerkonto at blive delt med ressourcer på en anden deltagerkonto. Men fordi oprettelse af en ny rute uden for en VPC betragtes som en privilegeret operation, kan deltagerkonti ikke oprette slutpunkter i ejer-VPC'er. Desuden ønsker mange kunder ikke at udvide de sikkerhedsrettigheder, der kræves for at oprette VPC-slutpunkter, til alle brugere, der klargør Amazon MWAA-miljøer. Udover VPC-endepunkter ønsker kunder også at begrænse dataudgang via Amazon Simple Queue Service (Amazon SQS) køer, og Amazon SQS-adgang er et krav i Amazon MWAA arkitektur.
Delt VPC-understøttelse til Amazon MWAA tilføjer muligheden for, at du kan administrere dine egne slutpunkter i dine VPC'er, hvilket tilføjer kompatibilitet til delte og på anden måde begrænsede VPC'er. Angivelse af kundeadministrerede slutpunkter giver også mulighed for at opfylde strenge sikkerhedspolitikker ved eksplicit at begrænse VPC-ressourceadgang til netop dem, der er nødvendige for dine Amazon MWAA-miljøer. Dette indlæg demonstrerer, hvordan kundeadministrerede slutpunkter fungerer med Amazon MWAA og giver eksempler på, hvordan man automatiserer leveringen af disse slutpunkter.
Løsningsoversigt
Delt VPC-understøttelse til Amazon MWAA giver flere AWS-konti mulighed for at skabe deres Airflow-miljøer til delte, centralt administrerede VPC'er. Kontoen, der ejer VPC'en (ejeren), deler de to private undernet, der kræves af Amazon MWAA, med andre konti (deltagere), der tilhører den samme organisation fra AWS-organisationer. Efter at undernettene er delt, kan deltagerne se, oprette, ændre og slette Amazon MWAA-miljøer i de undernet, der deles med dem.
Når brugere specificerer behovet for en delt eller på anden måde politikbegrænset VPC under oprettelse af miljøet, vil Amazon MWAA først oprette tjenestens VPC-ressourcer og derefter gå ind i en afventende tilstand i op til 72 timer med en Amazon Eventbridge meddelelse om tilstandsændringen. Dette gør det muligt for ejere at oprette de påkrævede slutpunkter på vegne af deltagere baseret på oplysninger om slutpunktstjeneste fra Amazon MWAA-konsollen eller API, eller programmatisk via en AWS Lambda funktion og EventBridge-regel, som i eksemplet i dette indlæg.
Når disse endepunkter er oprettet på ejerkontoen, vil endepunktstjenesten i Amazon MWAA VPC med én lejer registrere endepunktsforbindelseshændelsen og genoptage oprettelsen af miljøet. Skulle der være et problem, kan du annullere oprettelse af miljø ved at slette miljøet i denne afventende tilstand.
Denne funktion giver dig også mulighed for at fjerne oprette, ændre og slette VPCE-rettigheder fra AWS identitets- og adgangsstyring (IAM)-principal, der skaber Amazon MWAA-miljøer, selv når der ikke bruges en delt VPC, fordi denne tilladelse i stedet vil blive pålagt IAM-principperen, der opretter slutpunktet (lambda-funktionen i vores eksempel). Desuden vil Amazon MWAA-miljøet give SQS-køen Amazon Resource Name (ARN), der bruges af Airflow Celery Executor til at sætte opgaver i kø (Cellery Executor Queue), hvilket giver dig mulighed for eksplicit at indtaste disse ressourcer i din netværkspolitik i stedet for at skulle angive en mere åben og generaliseret tilladelse.
I dette eksempel opretter vi VPC- og Amazon MWAA-miljøet på den samme konto. For delte VPC'er på tværs af konti ville EventBridge-reglen og Lambda-funktionen eksistere på ejerkontoen, og Amazon MWAA-miljøet ville blive oprettet på deltagerkontoen. Se Afsendelse og modtagelse af Amazon EventBridge-begivenheder mellem AWS-konti for mere information.
Forudsætninger
Du skal have følgende forudsætninger:
- En AWS-konto
- En AWS-bruger på den konto med tilladelser til at oprette VPC'er, VPC-slutpunkter og Amazon MWAA-miljøer
- An Amazon Simple Storage Service (Amazon S3) bucket på den konto, med en mappe kaldet
dags
Opret VPC
Vi begynder med at oprette en restriktiv VPC ved hjælp af en AWS CloudFormation skabelon, for at simulere oprettelse af det nødvendige VPC-slutpunkt og ændring af SQS-slutpunktpolitikken. Hvis du vil bruge en eksisterende VPC, kan du gå videre til næste afsnit.
- Download CloudFormation skabelonen refereret i Mulighed tre: Oprettelse af et Amazon VPC-netværk uden internetadgang.
- Uddrag filen
cfn-vpc-private-bjs.yml
fra det downloadede ZIP-arkiv. - Nu redigerer vi vores CloudFormation-skabelon for at begrænse adgangen til Amazon SQS. I
cfn-vpc-private-bjs.yml
, redigerSqsVpcEndoint
sektionen vises som følger:
Denne yderligere politikdokumentpost forhindrer Amazon SQS-udgang til enhver ressource, der ikke udtrykkeligt er angivet.
Nu kan vi oprette vores CloudFormation-stak.
- På AWS CloudFormation-konsollen skal du vælge Opret stak.
- Type Upload en skabelonfil.
- Vælg Vælg fil.
- Gå til den fil, du har ændret.
- Vælg Næste.
- Til Staknavn, gå ind
MWAA-Environment-VPC
. - Vælg Næste indtil du når anmeldelsessiden.
- Vælg Indsend.
Opret Lambda-funktionen
Vi har to muligheder for selv at administrere vores endepunkter: manuel og automatiseret. I dette eksempel opretter vi en Lambda-funktion, der reagerer på Amazon MWAA EventBridge-meddelelsen. Du kan også bruge EventBridge-meddelelsen til at sende en Amazon Simple Notification Service (Amazon SNS) besked, såsom en e-mail, til en person med tilladelse til at oprette VPC-slutpunktet manuelt.
Først opretter vi en Lambda-funktion til at reagere på EventBridge-begivenheden, som Amazon MWAA vil udsende.
- Vælg på Lambda-konsollen Opret funktion.
- Til Navn, gå ind
mwaa-create-lambda
. - Til Runtime, vælg Python 3.11.
- Vælg Opret funktion.
- Til KodeI Kildekode afsnit, for
lambda_function
, indtast følgende kode: - Vælg Implementer.
- På Konfiguration fanen af Lambda-funktionen i Generel konfiguration sektion, skal du vælge Redigere.
- Til Timeout, øg til 5 minutter, 0 sekunder.
- Vælg Gem.
- I Tilladelser afsnit under Udførelsesrolle, vælg rollenavnet for at redigere tilladelserne til denne funktion.
- Til Tilladelsespolitikker, vælg linket under Politikens navn.
- Vælg Redigere og tilføj et komma og følgende udsagn:
Den komplette politik skal se ud som følgende:
- Vælg Næste indtil du når anmeldelsessiden.
- Vælg Gem ændringer.
Opret en EventBridge-regel
Dernæst konfigurerer vi EventBridge til at sende Amazon MWAA-meddelelserne til vores Lambda-funktion.
- Vælg på EventBridge-konsollen Opret regel.
- Til Navn, indtast mwaa-create.
- Type Regl med et begivenhedsmønster.
- Vælg Næste.
- Til Oprettelsesmetode, vælg Brugermønsterformular.
- Vælg Rediger mønster.
- Til Begivenhedsmønster, indtaste følgende:
- Vælg Næste.
- Til Vælg et mål, vælg Lambda funktion.
Du kan også angive en SNS-meddelelse for at modtage en besked, når miljøtilstanden ændress.
- Til Funktion, vælg
mwaa-create-lambda
. - Vælg Næste indtil du når det sidste afsnit, så vælg Opret regel.
Opret et Amazon MWAA-miljø
Endelig opretter vi et Amazon MWAA-miljø med kundeadministrerede slutpunkter.
- På Amazon MWAA-konsollen skal du vælge Skab miljø.
- Til Navn, indtast et unikt navn til dit miljø.
- Til Airflow version, vælg den seneste Airflow-version.
- Til S3 spand, vælg Gennemse S3 og vælg din S3-bøtte, eller indtast Amazon S3-URI.
- Til DAGs mappe, vælg Gennemse S3 og vælg
dags/
mappe i din S3-bøtte, eller indtast Amazon S3 URI. - Vælg Næste.
- Til Virtuel privat sky, vælg den VPC, du oprettede tidligere.
- Til Webserver adgang, vælg Offentligt netværk (internet tilgængeligt).
- Til Sikkerhedsgrupper, fravælg Opret ny sikkerhedsgruppe.
- Vælg den delte VPC-sikkerhedsgruppe, der er oprettet af CloudFormation-skabelonen.
Fordi sikkerhedsgrupperne i AWS PrivateLink endepunkter fra det tidligere trin er selvrefererende, du skal vælge den samme sikkerhedsgruppe til dit Amazon MWAA-miljø.
- Til Endpoint management, vælg Kundeadministrerede slutpunkter.
- Behold de resterende indstillinger som standard, og vælg Næste.
- Vælg Skab miljø.
Når dit miljø er tilgængeligt, kan du få adgang til det via Åbn Airflow UI link på Amazon MWAA-konsollen.
Ryd op
At rydde op i ressourcer, der ikke bliver brugt aktivt, reducerer omkostningerne og er en best practice. Hvis du ikke sletter dine ressourcer, kan du blive pålagt yderligere omkostninger. For at rydde op i dine ressourcer skal du udføre følgende trin:
- Slet din Amazon MWAA miljø, EventBridge-regelog Lambda funktion.
- Slette VPC-endepunkter skabt af Lambda-funktionen.
- Slet evt sikkerhedsgrupper oprettet, hvis det er relevant.
- Når ovenstående ressourcer har fuldført sletningen, skal du slette CloudFormation stak for at sikre, at du har fjernet alle de resterende ressourcer.
Resumé
Dette indlæg beskrev, hvordan man automatiserer miljøoprettelse med delt VPC-understøttelse i Amazon MWAA. Dette giver dig mulighed for at administrere dine egne slutpunkter inden for din VPC, og tilføje kompatibilitet til delte eller på anden måde begrænsede VPC'er. Angivelse af kundeadministrerede slutpunkter giver også mulighed for at opfylde strenge sikkerhedspolitikker ved eksplicit at begrænse VPC-ressourceadgang til netop dem, der er nødvendige for deres Amazon MWAA-miljøer. For at lære mere om Amazon MWAA, se Amazon MWAA brugervejledning. For flere indlæg om Amazon MWAA, besøg Amazon MWAA-ressourceside.
Om forfatteren
John jackson har over 25 års softwareerfaring som udvikler, systemarkitekt og produktchef i både startups og store virksomheder og er AWS Principal Product Manager med ansvar for Amazon MWAA.
- 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. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/big-data/introducing-shared-vpc-support-on-amazon-mwaa/
- :har
- :er
- :ikke
- $OP
- 10
- 100
- 11
- 13
- 15 %
- 200
- 25
- 41
- 72
- 8
- a
- evne
- Om
- over
- adgang
- tilgængelig
- Konto
- Konti
- tværs
- Handling
- aktiv
- aktivt
- acykliske
- tilføje
- tilføje
- Desuden
- Yderligere
- Tilføjer
- Efter
- Alle
- tillade
- tilladt
- tillade
- tillader
- allerede
- også
- Amazon
- Amazon Web Services
- an
- ,
- enhver
- Apache
- api
- vises
- anvendelig
- Arkiv
- ER
- AS
- automatisere
- Automatiseret
- Automatisering
- til rådighed
- AWS
- AWS CloudFormation
- baseret
- BE
- fordi
- begynde
- vegne
- være
- BEDSTE
- mellem
- krop
- pin
- både
- Pause
- byrde
- men
- by
- kaldet
- CAN
- Kan få
- lave om
- Ændringer
- afgifter
- Vælg
- ren
- kunde
- kode
- KOM
- samfund
- kompatibilitet
- fuldføre
- Afsluttet
- tilslutning
- betragtes
- Konsol
- Beholdere
- sammenhæng
- Selskaber
- Omkostninger
- kunne
- skabe
- oprettet
- skaber
- Oprettelse af
- skabelse
- kunde
- Kunder
- DAG
- data
- Database
- Standard
- demonstrere
- demonstrerer
- implementering
- beskrive
- beskrevet
- detail
- opdage
- Udvikler
- Udvikling
- forskellige
- rettet
- dokumentet
- gør
- Dont
- grund
- i løbet af
- hver
- tidligere
- let
- effekt
- andet
- Endpoint
- endpoints
- Ingeniører
- sikre
- Indtast
- indrejse
- Miljø
- miljøer
- Ether (ETH)
- Endog
- begivenhed
- begivenheder
- eksempel
- eksempler
- eksisterer
- eksisterende
- erfaring
- udtrykkeligt
- udvide
- omfattende
- bekendt
- Feature
- File (Felt)
- filtrering
- endelige
- Fornavn
- efter
- følger
- Til
- fundet
- fra
- funktion
- yderligere
- Endvidere
- få
- giver
- graf
- gruppe
- Gruppens
- Have
- have
- værter
- HOURS
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- IAM
- ID
- Identity
- if
- importere
- pålagt
- in
- info
- oplysninger
- Infrastruktur
- forekomster
- i stedet
- integrationer
- interagere
- grænseflade
- Internet
- ind
- indføre
- spørgsmål
- IT
- ITS
- jpg
- json
- lige
- Nøgle
- stor
- seneste
- førende
- LÆR
- Bibliotek
- LINK
- Børsnoterede
- logning
- Se
- lavet
- maerker
- administrere
- lykkedes
- leder
- administrerer
- manuel
- manuelt
- mange
- Kan..
- Mød
- besked
- minutter
- modificeret
- ændre
- mere
- flere
- skal
- navn
- nødvendig
- Behov
- behov
- netværk
- Ny
- næste
- underretning
- meddelelser
- of
- on
- åbent
- open source
- drift
- operationelle
- Indstillinger
- or
- ordrer
- organisation
- organisationer
- Andet
- Ellers
- vores
- uden for
- i løbet af
- egen
- ejer
- ejere
- ejer
- side
- deltager
- deltagere
- Mønster
- verserende
- tilladelse
- Tilladelser
- plato
- Platon Data Intelligence
- PlatoData
- politikker
- politik
- Indlæg
- Indlæg
- praksis
- forudsætninger
- forhindrer
- Main
- private
- privilegeret
- privilegier
- Fortsæt
- Produkt
- produktchef
- egenskaber
- give
- giver
- leverer
- Python
- R
- hellere
- nå
- modtage
- modtagende
- reducerer
- henvise
- resterende
- Fjern
- fjernet
- påkrævet
- krav
- ressource
- Ressourcer
- Svar
- svar
- ansvarlige
- begrænse
- begrænset
- begrænser
- restriktiv
- Genoptag
- afkast
- gennemgå
- roller
- R
- Herske
- Kør
- s
- samme
- planlægge
- forskere
- sekunder
- Sektion
- sikkerhed
- sikkerhedspolitikker
- se
- send
- server
- tjeneste
- Tjenester
- indstillinger
- delt
- Aktier
- bør
- lignende
- Simpelt
- So
- Software
- Nogen
- Kilde
- stable
- Nystartede
- Tilstand
- Statement
- Stater
- Status
- Trin
- Steps
- opbevaring
- butik
- forhandler
- streng
- undernet
- sådan
- support
- Systemer
- opgaver
- skabelon
- end
- at
- deres
- Them
- derefter
- Der.
- denne
- dem
- tre
- til
- værktøj
- sand
- to
- typen
- under
- underliggende
- enestående
- indtil
- opdatering
- URI
- brug
- anvendte
- Bruger
- Brugergrænseflade
- brugere
- ved brug af
- værdi
- Værdier
- udgave
- via
- Specifikation
- Besøg
- ønsker
- we
- web
- Webserver
- webservices
- hvornår
- som
- vilje
- med
- inden for
- uden
- Arbejde
- arbejdstager
- arbejdsgange
- ville
- år
- dig
- Din
- zephyrnet
- Zip