AWS Lim er en serverløs dataintegrasjonstjeneste som gjør det enkelt å oppdage, forberede, flytte og integrere data fra flere kilder for analyse, maskinlæring (ML) og applikasjonsutvikling.
AWS Glue-kunder må ofte oppfylle strenge sikkerhetskrav, som noen ganger innebærer å låse ned nettverkstilkoblingen som er tillatt for jobben, eller løpe inne i en spesifikk VPC for å få tilgang til en annen tjeneste. For å kjøre inne i VPC-en, må jobbene tildeles et enkelt undernett, men det mest passende undernettverket kan endres over tid (for eksempel basert på bruk og tilgjengelighet), så det kan hende du foretrekker å ta den avgjørelsen under kjøring, basert på din egen strategi.
Amazon administrerte arbeidsflyter for Apache Airflow (Amazon MWAA) er en AWS-tjeneste for å kjøre administrerte Airflow-arbeidsflyter, som gjør det mulig å skrive tilpasset logikk for å koordinere hvordan oppgaver som AWS Glue-jobber kjører.
I dette innlegget viser vi hvordan du kjører en AWS Glue-jobb som en del av en Airflow-arbeidsflyt, med dynamisk konfigurerbart valg av VPC-undernettet som er tilordnet jobben under kjøring.
Løsningsoversikt
For å kjøre inne i en VPC, må en AWS Glue-jobb tildeles minst en tilkobling som inkluderer nettverkskonfigurasjon. Enhver tilkobling gjør det mulig å spesifisere en VPC, subnett og sikkerhetsgruppe, men for enkelhets skyld bruker dette innlegget tilkoblinger av typen: NETTVERK, som bare definerer nettverkskonfigurasjonen og ikke involverer eksterne systemer.
Hvis jobben har et fast undernett tilordnet av en enkelt tilkobling, i tilfelle tjenestebrudd på Tilgjengelighetssoner eller hvis subnettet ikke er tilgjengelig av andre årsaker, kan ikke jobben kjøres. Videre krever hver node (driver eller arbeider) i en AWS Glue-jobb en IP-adresse tildelt fra subnettet. Når du kjører mange store jobber samtidig, kan dette føre til mangel på IP-adresser og at jobben kjører med færre noder enn beregnet eller ikke kjører i det hele tatt.
AWS Glue extract, transform and load (ETL)-jobber lar flere tilkoblinger spesifiseres med flere nettverkskonfigurasjoner. Jobben vil imidlertid alltid prøve å bruke tilkoblingenes nettverkskonfigurasjon i den oppførte rekkefølgen og velge den første som passerer helsekontroller og har minst to IP-adresser for å få jobben i gang, noe som kanskje ikke er det optimale alternativet.
Med denne løsningen kan du forbedre og tilpasse atferden ved å omorganisere tilkoblingene dynamisk og definere utvalgsprioriteten. Hvis et nytt forsøk er nødvendig, omprioriteres forbindelsene på nytt basert på strategien, fordi forholdene kan ha endret seg siden siste kjøring.
Som et resultat bidrar det til å forhindre at jobben ikke kjører eller kjører under kapasitet på grunn av mangel på IP-adresse i undernettverket eller til og med et strømbrudd, samtidig som det oppfyller kravene til nettverkssikkerhet og tilkobling.
Følgende diagram illustrerer løsningsarkitekturen.
Forutsetninger
For å følge trinnene i innlegget trenger du en bruker som kan logge på AWS-administrasjonskonsoll og har tillatelse til å få tilgang til Amazon MWAA, Amazon Virtual Private Cloud (Amazon VPC), og AWS Glue. AWS-regionen der du velger å distribuere løsningen trenger kapasitet til å lage en VPC og to elastiske IP-adresser. Standard regional kvote for begge typer ressurser er fem, så du må kanskje be om en økning via konsollen.
Du trenger også en AWS identitets- og tilgangsadministrasjon (IAM) rolle egnet for å kjøre AWS Glue-jobber hvis du ikke allerede har en. For instruksjoner, se Opprett en IAM-rolle for AWS Glue.
Distribuer et Airflow-miljø og VPC
Først skal du distribuere et nytt Airflow-miljø, inkludert opprettelsen av en ny VPC med to offentlige undernett og to private. Dette er fordi Amazon MWAA krever Availability Zone-feiltoleranse, så den må kjøres på to subnett på to forskjellige Availability Zones i regionen. De offentlige undernettene brukes slik at NAT-gatewayen kan gi internettilgang for de private undernettene.
Fullfør følgende trinn:
- Lag en AWS skyformasjon malen på datamaskinen din ved å kopiere malen fra følgende Hurtigstartveiledning inn i en lokal tekstfil.
- Velg på AWS CloudFormation-konsollen Stabler i navigasjonsruten.
- Velg Lag stabel med alternativet Med nye ressurser (standard).
- Velg Last opp en malfil og velg den lokale malfilen.
- Velg neste.
- Fullfør oppsettstrinnene, skriv inn et navn for miljøet, og la resten av parameterne være standard.
- På det siste trinnet, anerkjenne at ressurser vil bli opprettet og velg Send.
Opprettelsen kan ta 20–30 minutter, til statusen til stabelen endres til CREATE_COMPLETE
.
Ressursen som vil ta mest tid er luftstrømmiljøet. Mens den opprettes, kan du fortsette med følgende trinn, til du blir bedt om å åpne Airflow-grensesnittet.
- På stabelens Ressurser fanen, merk ID-ene for VPC-en og to private undernett (
PrivateSubnet1
ogPrivateSubnet2
), for å bruke i neste trinn.
Lag AWS-limforbindelser
CloudFormation-malen distribuerer to private undernett. I dette trinnet oppretter du en AWS Glue-forbindelse til hver enkelt slik at AWS Glue-jobber kan kjøres i dem. Amazon MWAA la nylig til kapasiteten til å kjøre Airflow-klyngen på delte VPC-er, noe som reduserer kostnadene og forenkler nettverksadministrasjonen. For mer informasjon, se Vi introduserer delt VPC-støtte på Amazon MWAA.
Fullfør følgende trinn for å opprette forbindelsene:
- Velg på AWS Lim-konsollen Datatilkoblinger i navigasjonsruten.
- Velg Opprett forbindelse.
- Velg Network som datakilde.
- Velg VPC og privat undernett (
PrivateSubnet1
) opprettet av CloudFormation-stakken. - Bruk standard sikkerhetsgruppe.
- Velg neste.
- For tilkoblingsnavnet, skriv inn
MWAA-Glue-Blog-Subnet1
. - Se gjennom detaljene og fullfør opprettelsen.
- Gjenta disse trinnene med
PrivateSubnet2
og navngi forbindelsenMWAA-Glue-Blog-Subnet2
.
Opprett AWS Glue-jobben
Nå oppretter du AWS Glue-jobben som vil bli utløst senere av Airflow-arbeidsflyten. Jobben bruker tilkoblingene som ble opprettet i forrige seksjon, men i stedet for å tilordne dem direkte på jobben, som du vanligvis ville gjort, lar du jobbtilkoblingslisten stå tom i dette scenariet og lar arbeidsflyten bestemme hvilken som skal brukes under kjøring.
Jobbskriptet i dette tilfellet er ikke signifikant og er bare ment å demonstrere at jobben kjørte i et av undernettene, avhengig av tilkoblingen.
- Velg på AWS Lim-konsollen ETL jobb i navigasjonsruten, og velg deretter Skriptredaktør.
- La standardalternativene (Spark engine og Start frisk) og velg Lag script.
- Erstatt plassholderskriptet med følgende Python-kode:
- Gi jobben nytt navn til
AirflowBlogJob
. - På Jobbdetaljer fanen, for IAM-rolle, velg hvilken som helst rolle og skriv inn 2 for antall arbeidere (bare for nøysomhet).
- Lagre disse endringene slik at jobben opprettes.
Gi AWS Glue-tillatelser til Airflow-miljørollen
Rollen opprettet for Airflow av CloudFormation-malen gir de grunnleggende tillatelsene til å kjøre arbeidsflyter, men ikke til å samhandle med andre tjenester som AWS Glue. I et produksjonsprosjekt ville du definere dine egne maler med disse tilleggstillatelsene, men i dette innlegget legger du for enkelhets skyld til tilleggstillatelsene som en innebygd policy. Fullfør følgende trinn:
- Velg på IAM-konsollen Roller i navigasjonsruten.
- Finn rollen opprettet av malen; det vil starte med navnet du tildelte CloudFormation-stakken og deretter
-MwaaExecutionRole-
. - På siden med rolledetaljer, på Legg til tillatelser meny, velg Lag inline policy.
- Bytt fra visuell til JSON-modus og skriv inn følgende JSON i tekstboksen. Den forutsetter at AWS Glue-rollen du har følger konvensjonen om å starte med
AWSGlueServiceRole
. For økt sikkerhet kan du erstatte jokertegnressursen påec2:DescribeSubnets
tillatelse med ARN-ene til de to private undernettene fra CloudFormation-stakken. - Velg neste.
- Enter
GlueRelatedPermissions
som policynavn og fullfør opprettelsen.
I dette eksemplet bruker vi en ETL-skriptjobb; for en visuell jobb, fordi den genererer skriptet automatisk ved lagring, vil Airflow-rollen trenge tillatelse til å skrive til den konfigurerte skriptbanen på Amazon enkel lagringstjeneste (Amazon S3).
Opprett Airflow DAG
En Airflow-arbeidsflyt er basert på en Directed Acyclic Graph (DAG), som er definert av en Python-fil som programmatisk spesifiserer de forskjellige oppgavene som er involvert og dens gjensidige avhengigheter. Fullfør følgende skript for å lage DAG:
- Lag en lokal fil med navnet
glue_job_dag.py
ved hjelp av et tekstredigeringsprogram.
I hvert av de følgende trinnene gir vi en kodebit for å legge inn i filen og en forklaring på hva det gjør.
- Følgende kodebit legger til de nødvendige Python-modulimportene. Modulene er allerede installert på Airflow; hvis det ikke var tilfelle, må du bruke en
requirements.txt
fil for å indikere til Airflow hvilke moduler som skal installeres. Den definerer også Boto3-klientene som koden skal bruke senere. Som standard vil de bruke samme rolle og region som Airflow, det er derfor du konfigurerer før rollen med de ekstra tillatelsene som kreves. - Følgende kodebit legger til tre funksjoner for å implementere tilkoblingsrekkefølgestrategien, som definerer hvordan du skal omorganisere tilkoblingene som er gitt for å etablere deres prioritet. Dette er bare et eksempel; du kan bygge din egendefinerte kode for å implementere din egen logikk, i henhold til dine behov. Koden sjekker først IP-ene som er tilgjengelige på hvert tilkoblingsundernett og skiller de som har nok IP-er tilgjengelig til å kjøre jobben med full kapasitet og de som kan brukes fordi de har minst to IP-er tilgjengelig, som er minimum en jobb trenger å start. Hvis strategien er satt til
random
, vil den randomisere rekkefølgen innenfor hver av tilkoblingsgruppene som er beskrevet tidligere og legge til eventuelle andre tilkoblinger. Hvis strategien ercapacity
, vil den bestille dem fra de fleste IP-er gratis til færrest. - Følgende kode oppretter selve DAG med kjørejobboppgaven, som oppdaterer jobben med tilkoblingsrekkefølgen definert av strategien, kjører den og venter på resultatene. Jobbnavnet, tilkoblingene og strategien kommer fra Airflow-variabler, slik at det enkelt kan konfigureres og oppdateres. Den har to gjenforsøk med eksponentiell backoff konfigurert, så hvis oppgavene mislykkes, vil den gjenta hele oppgaven inkludert tilkoblingsvalget. Kanskje det beste valget nå er en annen tilkobling, eller subnettet som tidligere ble valgt tilfeldig, er i en tilgjengelighetssone som for øyeblikket lider av en strømbrudd, og ved å velge en annen kan den komme seg.
Opprett Airflow-arbeidsflyten
Nå oppretter du en arbeidsflyt som påkaller AWS Glue-jobben du nettopp opprettet:
- På Amazon S3-konsollen, finn bøtten opprettet av CloudFormation-malen, som vil ha et navn som starter med navnet på stabelen og deretter
-environmentbucket-
(for eksempel,myairflowstack-environmentbucket-ap1qks3nvvr4
). - Opprett en mappe som heter i den bøtta
dags
, og i den mappen laster du opp DAG-filenglue_job_dag.py
som du opprettet i forrige del. - På Amazon MWAA-konsollen, naviger til miljøet du distribuerte med CloudFormation-stakken.
Hvis statusen ikke er ennå Tilgjengelig, vent til den når den tilstanden. Det bør ikke ta mer enn 30 minutter siden du implementerte CloudFormation-stakken.
- Velg miljøkoblingen i tabellen for å se miljødetaljene.
Den er konfigurert til å plukke opp DAG-er fra bøtta og mappen du brukte i de forrige trinnene. Airflow vil overvåke den mappen for endringer.
- Velg Åpne Airflow UI for å åpne en ny fane med tilgang til Airflow UI, ved å bruke den integrerte IAM-sikkerheten for å logge deg på.
Hvis det er noe problem med DAG-filen du opprettet, vil den vise en feil på toppen av siden som indikerer linjene som er berørt. I så fall, se gjennom trinnene og last opp på nytt. Etter noen sekunder vil den analysere den og oppdatere eller fjerne feilbanneret.
- På admin meny, velg Variabler.
- Legg til tre variabler med følgende nøkler og verdier:
- nøkkel
glue_job_dag.glue_connections
med verdiMWAA-Glue-Blog-Subnet1,MWAA-Glue-Blog-Subnet2
. - nøkkel
glue_job_dag.glue_job_name
med verdiAirflowBlogJob
. - nøkkel
glue_job_dag.strategy
med verdicapacity
.
- nøkkel
Kjør jobben med en dynamisk subnett-tilordning
Nå er du klar til å kjøre arbeidsflyten og se at strategien dynamisk omorganiserer tilkoblingene.
- På Airflow UI velger du DAGs, og på raden
glue_job_dag
, velg avspillingsikonet. - På Søk meny, velg Oppgaveforekomster.
- Rull til høyre i forekomsttabellen for å vise
Log Url
og velg ikonet på den for å åpne loggen.
Loggen vil oppdateres etter hvert som oppgaven kjører; du kan finne linjen som starter med "Kjøre limjobb med tilkoblingsrekkefølgen:" og de forrige linjene som viser detaljer om tilkoblings-IP-ene og kategorien som er tildelt. Hvis det oppstår en feil, vil du se detaljene i denne loggen.
- Velg på AWS Lim-konsollen ETL jobb i navigasjonsruten, og velg deretter jobben
AirflowBlogJob
. - På Kjører fanen, velg kjøreforekomsten og deretter Utdatalogger lenke, som åpner en ny fane.
- På den nye fanen bruker du loggstrømkoblingen for å åpne den.
Den vil vise IP-en som driveren ble tildelt og hvilket subnett den tilhører, som skal samsvare med tilkoblingen angitt av Airflow (hvis loggen ikke vises, velg Fortsett så den blir oppdatert så snart den er tilgjengelig).
- Rediger Airflow-variabelen på Airflow-grensesnittet
glue_job_dag.strategy
å sette den tilrandom
. - Kjør DAG flere ganger og se hvordan bestillingen endres.
Rydd opp
Hvis du ikke lenger trenger distribusjonen, slett ressursene for å unngå ytterligere kostnader:
- Slett Python-skriptet du lastet opp, slik at S3-bøtten kan slettes automatisk i neste trinn.
- Slett CloudFormation-stakken.
- Slett AWS Glue-jobben.
- Slett skriptet som jobben lagret i Amazon S3.
- Slett forbindelsene du opprettet som en del av dette innlegget.
konklusjonen
I dette innlegget viste vi hvordan AWS Glue og Amazon MWAA kan jobbe sammen for å bygge mer avanserte tilpassede arbeidsflyter, samtidig som drifts- og administrasjonsoverhead minimeres. Denne løsningen gir deg mer kontroll over hvordan AWS Glue-jobben din kjører for å møte spesielle drifts-, nettverks- eller sikkerhetskrav.
Du kan distribuere ditt eget Amazon MWAA-miljø på flere måter, for eksempel med mal brukt i dette innlegget, på Amazon MWAA-konsollen, eller ved å bruke AWS CLI. Du kan også implementere dine egne strategier for å orkestrere AWS Glue-jobber, basert på nettverksarkitekturen og kravene (for eksempel for å kjøre jobben nærmere dataene når det er mulig).
Om forfatterne
Michael Greenshtein er en analytisk spesialistløsningsarkitekt for offentlig sektor.
Gonzalo Herreros er senior Big Data Architect på AWS Glue-teamet.
- 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/combine-aws-glue-and-amazon-mwaa-to-build-advanced-vpc-selection-and-failover-strategies/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 10
- 100
- 11
- 12
- 1232
- 1393
- 19
- 2%
- 20
- 2000
- 21
- 28
- 30
- 34
- 4
- 5
- 6
- 610
- 8
- a
- Om oss
- adgang
- Tilgang
- anerkjenne
- Handling
- asyklisk
- legge til
- la til
- Ytterligere
- adresse
- adresser
- Legger
- avansert
- påvirkes
- Etter
- en gang til
- Alle
- tillate
- tillatt
- tillater
- allerede
- også
- alltid
- Amazon
- Amazon Web Services
- an
- analytics
- og
- En annen
- noen
- Apache
- Søknad
- Applikasjonutvikling
- arkitektur
- ER
- AS
- tildelt
- antar
- At
- automatisk
- tilgjengelighet
- tilgjengelig
- unngå
- AWS
- AWS skyformasjon
- AWS Lim
- banner
- basert
- grunnleggende
- BE
- fordi
- vært
- før du
- atferd
- være
- tilhører
- BEST
- Stor
- Store data
- både
- bygge
- men
- by
- som heter
- CAN
- Kapasitet
- saken
- katalog
- Kategori
- endring
- endret
- Endringer
- avgifter
- sjekk
- sjekket
- Sjekker
- valg
- Velg
- ren
- klienter
- nærmere
- Cluster
- kode
- kombinere
- Kom
- fullføre
- datamaskin
- forhold
- Konfigurasjon
- konfigurasjoner
- konfigurert
- tilkobling
- Tilkoblinger
- Tilkobling
- Konsoll
- fortsette
- kontroll
- Konvensjonen
- koordinere
- kopiering
- Kostnad
- kunne
- skape
- opprettet
- skaper
- skaperverket
- I dag
- skikk
- Kunder
- tilpasse
- DAG
- dato
- dataintegrasjon
- Dato
- dato tid
- bestemme
- avgjørelse
- def
- Misligholde
- definere
- definert
- definerer
- definere
- den
- slette
- slettet
- Etterspørsel
- demonstrere
- avhengig
- utplassere
- utplassert
- distribusjon
- Distribueres
- beskrevet
- detaljer
- Utvikling
- diagram
- DIKT
- forskjellig
- regissert
- direkte
- oppdage
- Vise
- vises
- do
- gjør
- ikke
- Don
- ikke
- ned
- sjåfør
- to
- varighet
- dynamisk
- dynamisk
- e
- hver enkelt
- lett
- redaktør
- effekt
- ellers
- tom
- slutt
- Motor
- forbedre
- forbedret
- nok
- Enter
- går inn
- Miljø
- feil
- etablere
- Eter (ETH)
- Selv
- eksempel
- Unntatt
- unntak
- forklaring
- eksponentiell
- utvendig
- trekke ut
- Mislyktes
- sviktende
- mislykkes
- Failure
- Noen få
- færre
- filet
- Først
- fem
- fikset
- følge
- etter
- følger
- Til
- Gratis
- fra
- fullt
- funksjoner
- videre
- Dess
- gateway
- genererer
- få
- blir
- gitt
- gir
- god
- graf
- Gruppe
- Gruppens
- Ha
- haven
- hjelper
- hold
- Hvordan
- Hvordan
- Men
- HTML
- http
- HTTPS
- IAM
- ICON
- Identitet
- ids
- if
- illustrerer
- iverksette
- importere
- import
- in
- inkluderer
- Inkludert
- Øke
- indikerer
- indikert
- indikerer
- informasjon
- innsiden
- installere
- installerte
- f.eks
- forekomster
- i stedet
- instruksjoner
- integrere
- integrert
- integrering
- tiltenkt
- samhandle
- Internet
- Internettilgang
- inn
- påkaller
- involvere
- involvert
- IP
- IP-adresse
- IP-adresser
- utstedelse
- IT
- DET ER
- selv
- Jobb
- Jobb
- jpg
- JSON
- bare
- Hold
- nøkler
- stor
- Siste
- seinere
- føre
- læring
- minst
- Permisjon
- la
- linje
- linjer
- LINK
- Liste
- oppført
- laste
- lokal
- låse
- logg
- logikk
- lenger
- maskin
- maskinlæring
- gjøre
- GJØR AT
- administrer
- fikk til
- ledelse
- mange
- Match
- Kan..
- kan være
- Møt
- møte
- Meny
- kunne
- minimere
- minimum
- minutter
- ML
- Mote
- modeller
- Moduler
- Overvåke
- mer
- mest
- flytte
- flere
- Flere tilkoblinger
- navn
- oppkalt
- Naviger
- Navigasjon
- Trenger
- nødvendig
- behov
- nettverk
- Nettverkssikkerhet
- Ny
- neste
- Nei.
- node
- noder
- normalt
- note
- nå
- Antall
- of
- ofte
- on
- ONE
- seg
- bare
- åpen
- operasjonell
- operatører
- optimal
- Alternativ
- alternativer
- or
- rekkefølge
- bestilling
- Annen
- brudd
- enn
- overhead
- egen
- side
- brød
- parametere
- del
- passerer
- banen
- for
- tillatelse
- tillatelser
- plukke
- plukket
- plukking
- placeholder
- plato
- Platon Data Intelligence
- PlatonData
- Spille
- politikk
- mulig
- Post
- trekker
- Forbered
- bevare
- forebygge
- forrige
- tidligere
- prioritet
- privat
- Produksjon
- prosjekt
- egenskaper
- gi
- tilbydere
- gir
- offentlig
- Python
- heve
- løp
- tilfeldig
- Når
- klar
- grunner
- nylig
- Gjenopprette
- reduserer
- referere
- region
- regional
- fjerne
- gjenta
- erstatte
- anmode
- påkrevd
- Krav
- Krever
- ressurs
- Ressurser
- REST
- resultere
- Resultater
- retur
- gjenbruk
- anmeldelse
- ikke sant
- Rolle
- RAD
- Kjør
- rennende
- går
- runtime
- samme
- Spar
- lagret
- scenario
- script
- skript
- bla
- sekunder
- Seksjon
- sektor
- sikkerhet
- se
- utvalg
- senior
- server~~POS=TRUNC
- tjeneste
- Tjenester
- sett
- oppsett
- delt
- mangel
- bør
- Vis
- viste
- viser
- shuffle
- signifikant
- Enkelt
- enkelhet
- forenkler
- siden
- enkelt
- tekstutdrag
- So
- løsning
- Solutions
- noen ganger
- Snart
- Sorter
- kilde
- Kilder
- Spark
- spesiell
- spesialist
- spesifikk
- spesifisert
- spesifiserer
- stable
- Standard
- Begynn
- startet
- Start
- Tilstand
- Uttalelse
- status
- Trinn
- Steps
- lagring
- rett fram
- strategier
- Strategi
- stream
- streng
- subnett
- subnett
- slik
- lidelse
- egnet
- støtte
- Systemer
- T
- bord
- Ta
- Oppgave
- oppgaver
- lag
- mal
- maler
- tekst
- enn
- Det
- De
- deres
- Dem
- deretter
- Disse
- de
- denne
- De
- tre
- tid
- ganger
- til
- sammen
- toleranse
- topp
- Transform
- prøvd
- utløst
- prøve
- to
- typen
- typer
- ui
- etter
- ukjent
- til
- Oppdater
- oppdatert
- oppdateringer
- lastet opp
- bruk
- bruk
- bruke
- brukt
- Bruker
- bruker
- ved hjelp av
- verdi
- Verdier
- variabel
- variabler
- versjon
- av
- virtuelle
- visuell
- vente
- venter
- advarsel
- var
- måter
- we
- web
- webtjenester
- Hva
- Hva er
- når
- hvilken
- mens
- hvorfor
- vil
- med
- innenfor
- Arbeid
- arbeide sammen
- arbeidstaker
- arbeidere
- arbeidsflyt
- arbeidsflyt
- ville
- skriving
- X
- ennå
- du
- Din
- zephyrnet
- sonen
- soner