I dette innlegget demonstrerer vi automatisering av distribusjon av Amazon administrerte arbeidsflyter for Apache Airflow (Amazon MWAA) ved å bruke kundeadministrerte endepunkter i en VPC, som gir kompatibilitet med delte, eller på annen måte begrensede, VPCer.
Dataforskere og ingeniører har laget Apache luftstrøm et ledende åpen kildekodeverktøy for å lage datapipelines på grunn av dets aktive åpen kildekodefellesskap, kjente Python-utvikling som Directed Acyclic Graph (DAG) arbeidsflyter, og omfattende bibliotek med forhåndsbygde integrasjoner. Amazon MWAA er en administrert tjeneste for Airflow som gjør det enkelt å kjøre Airflow på AWS uten den operasjonelle byrden med å måtte administrere den underliggende infrastrukturen. For hvert Airflow-miljø oppretter Amazon MWAA en VPC-tjeneste med én leietaker, som er vert for metadatabasen som lagrer tilstander og webserveren som gir brukergrensesnittet. Amazon MWAA administrerer videre Airflow-planlegger- og arbeiderforekomster i en kundeeid og administrert VPC, for å planlegge og kjøre oppgaver som samhandler med kunderessurser. Disse luftstrømbeholderne i kundens VPC får tilgang til ressurser i tjenesten VPC via en VPC-endepunkt.
Mange organisasjoner velger å sentralt administrere sin VPC ved hjelp av AWS organisasjoner, slik at en VPC på en eierkonto kan deles med ressurser på en annen deltakerkonto. Men fordi å opprette en ny rute utenfor en VPC anses som en privilegert operasjon, kan ikke deltakerkontoer opprette endepunkter i eier-VPCer. Videre ønsker mange kunder ikke å utvide sikkerhetsprivilegiene som kreves for å lage VPC-endepunkter til alle brukere som klargjør Amazon MWAA-miljøer. I tillegg til VPC-endepunkter ønsker kunder også å begrense datautgang via Amazon enkel køtjeneste (Amazon SQS) køer, og Amazon SQS-tilgang er et krav i Amazon MWAA-arkitektur.
Delt VPC-støtte for Amazon MWAA gir deg muligheten til å administrere dine egne endepunkter i VPC-ene dine, og legger til kompatibilitet til delte og ellers begrensede VPC-er. Spesifisering av kundeadministrerte endepunkter gir også muligheten til å møte strenge sikkerhetspolicyer ved å eksplisitt begrense VPC-ressurstilgangen til akkurat de som trengs av dine Amazon MWAA-miljøer. Dette innlegget demonstrerer hvordan kundeadministrerte endepunkter fungerer med Amazon MWAA og gir eksempler på hvordan man kan automatisere leveringen av disse endepunktene.
Løsningsoversikt
Delt VPC-støtte for Amazon MWAA lar flere AWS-kontoer lage sine Airflow-miljøer til delte, sentralstyrte VPCer. Kontoen som eier VPC (eier) deler de to private undernettene som kreves av Amazon MWAA med andre kontoer (deltakere) som tilhører samme organisasjon fra AWS Organizations. Etter at undernettene er delt, kan deltakerne se, opprette, endre og slette Amazon MWAA-miljøer i undernettene som deles med dem.
Når brukere spesifiserer behovet for en delt, eller på annen måte policy-begrenset, VPC under opprettelse av miljøet, vil Amazon MWAA først opprette tjenestens VPC-ressurs, og deretter gå inn i en ventende tilstand i opptil 72 timer, med en Amazon EventBridge melding om tilstandsendringen. Dette lar eiere opprette de nødvendige endepunktene på vegne av deltakerne basert på endepunkttjenesteinformasjon fra Amazon MWAA-konsollen eller API, eller programmatisk via en AWS Lambda funksjon og EventBridge-regel, som i eksemplet i dette innlegget.
Etter at disse endepunktene er opprettet på eierkontoen, vil endepunkttjenesten i Amazon MWAA VPC med én leietaker oppdage endepunkttilkoblingshendelsen og gjenoppta miljøoppretting. Skulle det være et problem, kan du avbryte oppretting av miljø ved å slette miljøet i denne ventende tilstanden.
Denne funksjonen lar deg også fjerne opprette, endre og slette VPCE-privilegier fra AWS identitets- og tilgangsadministrasjon (IAM)-rektor som oppretter Amazon MWAA-miljøer, selv når den ikke bruker en delt VPC, fordi den tillatelsen i stedet vil bli pålagt IAM-prinsipalen som oppretter endepunktet (lambda-funksjonen i vårt eksempel). Videre vil Amazon MWAA-miljøet gi SQS-køen Amazon Resource Name (ARN) som brukes av Airflow Celery Executor for å sette oppgaver i kø (Selery Executor Queue), slik at du eksplisitt kan legge inn disse ressursene i nettverkspolicyen din i stedet for å måtte oppgi en mer åpen og generalisert tillatelse.
I dette eksemplet lager vi VPC- og Amazon MWAA-miljøet på samme konto. For delte VPCer på tvers av kontoer, vil EventBridge-regelen og Lambda-funksjonen eksistere i eierkontoen, og Amazon MWAA-miljøet vil bli opprettet i deltakerkontoen. Se Sende og motta Amazon EventBridge-hendelser mellom AWS-kontoer for mer informasjon.
Forutsetninger
Du bør ha følgende forutsetninger:
- En AWS-konto
- En AWS-bruker på den kontoen, med tillatelser til å lage VPC-er, VPC-endepunkter og Amazon MWAA-miljøer
- An Amazon enkel lagringstjeneste (Amazon S3)-bøtte i den kontoen, med en mappe kalt
dags
Opprett VPC
Vi begynner med å lage en restriktiv VPC ved å bruke en AWS skyformasjon mal, for å simulere å opprette det nødvendige VPC-endepunktet og endre SQS-endepunktspolicyen. Hvis du vil bruke en eksisterende VPC, kan du gå videre til neste seksjon.
- Last ned CloudFormation-malen referert i Alternativ tre: Opprette et Amazon VPC-nettverk uten Internett-tilgang.
- Trekk ut filen
cfn-vpc-private-bjs.yml
fra det nedlastede ZIP-arkivet. - Nå redigerer vi CloudFormation-malen vår for å begrense tilgangen til Amazon SQS. I
cfn-vpc-private-bjs.yml
, redigerSqsVpcEndoint
delen vises som følger:
Denne ekstra policydokumentoppføringen forhindrer Amazon SQS-utgang til enhver ressurs som ikke er eksplisitt oppført.
Nå kan vi lage vår CloudFormation-stabel.
- Velg på AWS CloudFormation-konsollen Lag stabel.
- Plukke ut Last opp en malfil.
- Velg Velg Fil.
- Bla til filen du endret.
- Velg neste.
- Til Stabelnavn, Tast inn
MWAA-Environment-VPC
. - Velg neste til du kommer til anmeldelsessiden.
- Velg Send.
Lag Lambda-funksjonen
Vi har to alternativer for selvadministrering av endepunktene våre: manuell og automatisert. I dette eksemplet lager vi en Lambda-funksjon som svarer på Amazon MWAA EventBridge-varslingen. Du kan også bruke EventBridge-varslingen til å sende en Amazon enkel varslingstjeneste (Amazon SNS) melding, for eksempel en e-post, til noen med tillatelse til å opprette VPC-endepunktet manuelt.
Først lager vi en Lambda-funksjon for å svare på EventBridge-hendelsen som Amazon MWAA vil sende ut.
- Velg Lambda-konsollen Opprett funksjon.
- Til Navn, Tast inn
mwaa-create-lambda
. - Til Runtime, velg Python 3.11.
- Velg Opprett funksjon.
- Til Kode, I Kildekode seksjon, for
lambda_function
, skriv inn følgende kode: - Velg Distribuer.
- På Konfigurasjon fanen til Lambda-funksjonen, i Generell konfigurasjon delen velger Rediger.
- Til Timeout, øk til 5 minutter, 0 sekunder.
- Velg Spar.
- på Tillatelser delen, under Utførelsesrolle, velg rollenavnet for å redigere tillatelsene til denne funksjonen.
- Til Retningslinjer for tillatelser, velg lenken under Policynavn.
- Velg Rediger og legg til et komma og følgende utsagn:
Den fullstendige policyen skal se ut som følger:
- Velg neste til du kommer til anmeldelsessiden.
- Velg Lagre endringer.
Opprett en EventBridge-regel
Deretter konfigurerer vi EventBridge til å sende Amazon MWAA-varslene til Lambda-funksjonen vår.
- På EventBridge-konsollen velger du Lag regel.
- Til Navn, skriv inn mwaa-create.
- Plukke ut Regel med et hendelsesmønster.
- Velg neste.
- Til Opprettelsesmetode, velg Brukermønsterskjema.
- Velg Rediger mønster.
- Til Arrangementsmønster, skriv inn følgende:
- Velg neste.
- Til Velg et mål, velg Lambda funksjon.
Du kan også spesifisere et SNS-varsel for å motta en melding når miljøtilstanden endress.
- Til Funksjon, velg
mwaa-create-lambda
. - Velg neste til du kommer til den siste delen, velg deretter Lag regel.
Lag et Amazon MWAA-miljø
Til slutt lager vi et Amazon MWAA-miljø med kundeadministrerte endepunkter.
- Velg på Amazon MWAA-konsollen Skap miljø.
- Til Navn, skriv inn et unikt navn for miljøet ditt.
- Til Airflow-versjon, velg den nyeste Airflow-versjonen.
- Til S3 bøtte, velg Bla gjennom S3 og velg din S3-bøtte, eller skriv inn Amazon S3-URI.
- Til DAGs mappe, velg Bla gjennom S3 og velg
dags/
mappen i S3-bøtten din, eller skriv inn Amazon S3 URI. - Velg neste.
- Til Virtuell privat sky, velg VPC-en du opprettet tidligere.
- Til Tilgang til webserver, velg Offentlig nettverk (tilgjengelig Internett).
- Til Sikkerhetsgrupper, fjern merket Opprett ny sikkerhetsgruppe.
- Velg den delte VPC-sikkerhetsgruppen opprettet av CloudFormation-malen.
Fordi sikkerhetsgruppene til AWS PrivateLink endepunkter fra det tidligere trinnet er selvreferanser, du må velge den samme sikkerhetsgruppen for ditt Amazon MWAA-miljø.
- Til Endpoint management, velg Kundeadministrerte endepunkter.
- Behold de gjenværende innstillingene som standard og velg neste.
- Velg Skap miljø.
Når miljøet ditt er tilgjengelig, kan du få tilgang til det via Åpne Airflow UI link på Amazon MWAA-konsollen.
Rydd opp
Å rydde opp i ressurser som ikke brukes aktivt reduserer kostnadene og er en beste praksis. Hvis du ikke sletter ressursene dine, kan du pådra deg ekstra kostnader. For å rydde opp i ressursene dine, fullfør følgende trinn:
- Slett din Amazon MWAA-miljø, EventBridge-regelog Lambda funksjon.
- Slett VPC-endepunkter opprettet av Lambda-funksjonen.
- Slett evt sikkerhetsgrupper opprettet, hvis aktuelt.
- Etter at ressursene ovenfor har fullført slettingen, sletter du CloudFormation-stabelen for å sikre at du har fjernet alle de gjenværende ressursene.
Oppsummering
Dette innlegget beskrev hvordan du automatiserer miljøoppretting med delt VPC-støtte i Amazon MWAA. Dette gir deg muligheten til å administrere dine egne endepunkter i din VPC, og legge til kompatibilitet til delte eller på annen måte begrensede VPCer. Spesifisering av kundeadministrerte endepunkter gir også muligheten til å møte strenge sikkerhetspolicyer ved å eksplisitt begrense VPC-ressurstilgangen til akkurat de som trengs av deres Amazon MWAA-miljøer. For å lære mer om Amazon MWAA, se Amazon MWAA brukerveiledning. For flere innlegg om Amazon MWAA, besøk Amazon MWAA ressurser side.
Om forfatteren
John jackson har over 25 års programvareerfaring som utvikler, systemarkitekt og produktsjef i både startups og store selskaper og er AWS Hovedproduktsjef med ansvar for Amazon MWAA.
- 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. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/big-data/introducing-shared-vpc-support-on-amazon-mwaa/
- : har
- :er
- :ikke
- $OPP
- 10
- 100
- 11
- 13
- 15%
- 200
- 25
- 41
- 72
- 8
- a
- evne
- Om oss
- ovenfor
- adgang
- tilgjengelig
- Logg inn
- kontoer
- tvers
- Handling
- aktiv
- aktivt
- asyklisk
- legge til
- legge
- tillegg
- Ytterligere
- Legger
- Etter
- Alle
- tillate
- tillatt
- tillate
- tillater
- allerede
- også
- Amazon
- Amazon Web Services
- an
- og
- noen
- Apache
- api
- vises
- aktuelt
- Arkiv
- ER
- AS
- automatisere
- Automatisert
- Automatisere
- tilgjengelig
- AWS
- AWS skyformasjon
- basert
- BE
- fordi
- begynne
- vegne
- være
- BEST
- mellom
- kroppen
- pin
- både
- Break
- byrde
- men
- by
- som heter
- CAN
- Kan få
- endring
- Endringer
- avgifter
- Velg
- ren
- kunde
- kode
- COM
- samfunnet
- kompatibilitet
- fullføre
- Terminado
- tilkobling
- ansett
- Konsoll
- Containere
- kontekst
- Corporations
- Kostnader
- kunne
- skape
- opprettet
- skaper
- Opprette
- skaperverket
- kunde
- Kunder
- DAG
- dato
- Database
- Misligholde
- demonstrere
- demonstrerer
- distribusjon
- beskrive
- beskrevet
- detalj
- oppdage
- Utvikler
- Utvikling
- forskjellig
- regissert
- dokument
- gjør
- ikke
- to
- under
- hver enkelt
- Tidligere
- lett
- effekt
- ellers
- emalje
- Endpoint
- endepunkter
- Ingeniører
- sikre
- Enter
- entry
- Miljø
- miljøer
- Eter (ETH)
- Selv
- Event
- hendelser
- eksempel
- eksempler
- eksisterer
- eksisterende
- erfaring
- eksplisitt
- utvide
- omfattende
- kjent
- Trekk
- filet
- filtrering
- slutt~~POS=TRUNC
- Først
- etter
- følger
- Til
- funnet
- fra
- funksjon
- videre
- Dess
- få
- gir
- graf
- Gruppe
- Gruppens
- Ha
- å ha
- Vertskapet
- TIMER
- Hvordan
- Hvordan
- Men
- HTML
- http
- HTTPS
- IAM
- ID
- Identitet
- if
- importere
- pålagt
- in
- info
- informasjon
- Infrastruktur
- forekomster
- i stedet
- integrasjoner
- samhandle
- Interface
- Internet
- inn
- innføre
- utstedelse
- IT
- DET ER
- jpg
- JSON
- bare
- nøkkel
- stor
- siste
- ledende
- LÆRE
- Bibliotek
- LINK
- oppført
- logging
- Se
- laget
- GJØR AT
- administrer
- fikk til
- leder
- forvalter
- håndbok
- manuelt
- mange
- Kan..
- Møt
- melding
- minutter
- modifisert
- modifisere
- mer
- flere
- må
- navn
- nødvendig
- Trenger
- nødvendig
- nettverk
- Ny
- neste
- varsling
- varslinger
- of
- on
- åpen
- åpen kildekode
- drift
- operasjonell
- alternativer
- or
- rekkefølge
- organisasjon
- organisasjoner
- Annen
- ellers
- vår
- utenfor
- enn
- egen
- eieren
- eiere
- eier
- side
- deltaker
- deltakere
- Mønster
- påvente
- tillatelse
- tillatelser
- plato
- Platon Data Intelligence
- PlatonData
- Politikk
- politikk
- Post
- innlegg
- praksis
- forutsetninger
- forhindrer
- Principal
- privat
- privilegert
- privilegier
- fortsette
- Produkt
- Produktsjef
- egenskaper
- gi
- gir
- gi
- Python
- R
- heller
- å nå
- motta
- mottak
- reduserer
- referere
- gjenværende
- fjerne
- fjernet
- påkrevd
- behov
- ressurs
- Ressurser
- Svare
- svar
- ansvarlig
- begrense
- begrenset
- begrense
- restriktiv
- gjenoppta
- retur
- anmeldelse
- Rolle
- Rute
- Regel
- Kjør
- s
- samme
- planlegge
- forskere
- sekunder
- Seksjon
- sikkerhet
- sikkerhetspolitikk
- se
- send
- server
- tjeneste
- Tjenester
- innstillinger
- delt
- Aksjer
- bør
- lignende
- Enkelt
- So
- Software
- Noen
- kilde
- stable
- startups
- Tilstand
- Uttalelse
- Stater
- status
- Trinn
- Steps
- lagring
- oppbevare
- butikker
- streng
- subnett
- slik
- støtte
- Systemer
- oppgaver
- mal
- enn
- Det
- De
- deres
- Dem
- deretter
- Der.
- denne
- De
- tre
- til
- verktøy
- sant
- to
- typen
- etter
- underliggende
- unik
- til
- oppdatering
- URI
- bruke
- brukt
- Bruker
- Brukergrensesnitt
- Brukere
- ved hjelp av
- verdi
- Verdier
- versjon
- av
- Se
- Besøk
- ønsker
- we
- web
- webserveren
- webtjenester
- når
- hvilken
- vil
- med
- innenfor
- uten
- Arbeid
- arbeidstaker
- arbeidsflyt
- ville
- år
- du
- Din
- zephyrnet
- Zip