Dans cet article, nous démontrons l'automatisation du déploiement de Flux de travail gérés par Amazon pour Apache Airflow (Amazon MWAA) utilisant des points de terminaison gérés par le client dans un VPC, offrant une compatibilité avec les VPC partagés ou autrement restreints.
Les data scientists et les ingénieurs ont réalisé Flux d'air Apache un outil open source de premier plan pour créer des pipelines de données grâce à sa communauté open source active, son développement Python familier sous forme de flux de travail Directed Acyclic Graph (DAG) et sa vaste bibliothèque d'intégrations prédéfinies. Amazon MWAA est un service géré pour Airflow qui facilite l'exécution d'Airflow sur AWS sans la charge opérationnelle liée à la gestion de l'infrastructure sous-jacente. Pour chaque environnement Airflow, Amazon MWAA crée un VPC de service à locataire unique, qui héberge la métadonnée qui stocke les états et le serveur Web qui fournit l'interface utilisateur. Amazon MWAA gère en outre le planificateur Airflow et les instances de travail dans un VPC détenu et géré par le client, afin de planifier et d'exécuter des tâches qui interagissent avec les ressources du client. Ces conteneurs Airflow dans le VPC client accèdent aux ressources dans le VPC de service via un Point de terminaison d'un VPC.
De nombreuses organisations choisissent de gérer de manière centralisée leur VPC en utilisant Organisations AWS, permettant à un VPC d'un compte propriétaire d'être partagé avec des ressources d'un autre compte participant. Toutefois, étant donné que la création d'une nouvelle route en dehors d'un VPC est considérée comme une opération privilégiée, les comptes de participants ne peuvent pas créer de points de terminaison dans les VPC propriétaires. De plus, de nombreux clients ne souhaitent pas étendre les privilèges de sécurité requis pour créer des points de terminaison de VPC à tous les utilisateurs qui provisionnent les environnements Amazon MWAA. En plus des points de terminaison d'un VPC, les clients souhaitent également restreindre la sortie de données via Service Amazon Simple Queue (Amazon SQS) et l'accès à Amazon SQS est une exigence dans le Architecture Amazon MWAA.
La prise en charge des VPC partagés pour Amazon MWAA vous permet de gérer vos propres points de terminaison au sein de vos VPC, ajoutant ainsi la compatibilité avec les VPC partagés et autrement restreints. La spécification de points de terminaison gérés par le client offre également la possibilité de respecter des politiques de sécurité strictes en limitant explicitement l'accès aux ressources VPC à celles nécessaires à vos environnements Amazon MWAA. Cet article montre comment les points de terminaison gérés par le client fonctionnent avec Amazon MWAA et fournit des exemples sur la manière d'automatiser le provisionnement de ces points de terminaison.
Vue d'ensemble de la solution
La prise en charge des VPC partagés pour Amazon MWAA permet à plusieurs comptes AWS de créer leurs environnements Airflow dans des VPC partagés et gérés de manière centralisée. Le compte propriétaire du VPC (propriétaire) partage les deux sous-réseaux privés requis par Amazon MWAA avec d'autres comptes (participants) appartenant à la même organisation d'AWS Organizations. Une fois les sous-réseaux partagés, les participants peuvent afficher, créer, modifier et supprimer des environnements Amazon MWAA dans les sous-réseaux partagés avec eux.
Lorsque les utilisateurs spécifient le besoin d'un VPC partagé ou restreint par une stratégie lors de la création de l'environnement, Amazon MWAA crée d'abord les ressources VPC de service, puis entre dans un état en attente pendant 72 heures maximum, avec un Amazon Event Bridge notification du changement d'état. Cela permet aux propriétaires de créer les points de terminaison requis au nom des participants en fonction des informations de service de point de terminaison provenant de la console ou de l'API Amazon MWAA, ou par programme via un AWS Lambda fonction et la règle EventBridge, comme dans l'exemple de cet article.
Une fois ces points de terminaison créés sur le compte propriétaire, le service de point de terminaison dans le VPC Amazon MWAA à locataire unique détectera l'événement de connexion au point de terminaison et reprendra la création de l'environnement. En cas de problème, vous pouvez annuler la création de l'environnement en supprimant l'environnement pendant cet état d'attente.
Cette fonctionnalité vous permet également de supprimer le créer, modifier et supprimer des privilèges VPCE du Gestion des identités et des accès AWS (IAM) créant des environnements Amazon MWAA, même lorsqu'il n'utilise pas de VPC partagé, car cette autorisation sera plutôt imposée au principal IAM créant le point de terminaison (la fonction Lambda dans notre exemple). De plus, l'environnement Amazon MWAA fournira la file d'attente SQS Amazon Resource Name (ARN) utilisée par Airflow Celery Executor pour mettre les tâches en file d'attente (la file d'attente Celery Executor), vous permettant d'entrer explicitement ces ressources dans votre stratégie réseau plutôt que d'avoir à fournir un autorisation plus ouverte et généralisée.
Dans cet exemple, nous créons l'environnement VPC et Amazon MWAA dans le même compte. Pour les VPC partagés entre comptes, la règle EventBridge et la fonction Lambda existeraient dans le compte propriétaire, et l'environnement Amazon MWAA serait créé dans le compte participant. Voir Envoi et réception d'événements Amazon EventBridge entre comptes AWS pour plus d'information.
Pré-requis
Vous devez avoir les prérequis suivants :
- Un compte AWS
- Un utilisateur AWS dans ce compte, disposant des autorisations nécessaires pour créer des VPC, des points de terminaison de VPC et des environnements Amazon MWAA
- An Service de stockage simple Amazon (Amazon S3) dans ce compte, avec un dossier appelé
dags
Créer le VPC
Nous commençons par créer un VPC restrictif à l'aide d'un AWS CloudFormation modèle, afin de simuler la création du point de terminaison VPC nécessaire et la modification de la politique de point de terminaison SQS. Si vous souhaitez utiliser un VPC existant, vous pouvez passer à la section suivante.
- Télécharger le modèle CloudFormation référencé dans Troisième option : créer un réseau Amazon VPC sans accès à Internet.
- Extraire le fichier
cfn-vpc-private-bjs.yml
à partir de l'archive ZIP téléchargée. - Nous modifions maintenant notre modèle CloudFormation pour restreindre l'accès à Amazon SQS. Dans
cfn-vpc-private-bjs.yml
, modifiez leSqsVpcEndoint
section pour apparaître comme suit :
Cette entrée supplémentaire du document de stratégie empêche la sortie d'Amazon SQS vers toute ressource non explicitement répertoriée.
Nous pouvons maintenant créer notre pile CloudFormation.
- Sur la console AWS CloudFormation, choisissez Créer une pile.
- Sélectionnez Télécharger un fichier modèle.
- Selectionnez Choisir le fichier.
- Accédez au fichier que vous avez modifié.
- Selectionnez Suivant.
- Pour Nom de la pile, Entrer
MWAA-Environment-VPC
. - Selectionnez Suivant jusqu'à ce que vous atteigniez la page de révision.
- Selectionnez Envoyer.
Créer la fonction Lambda
Nous disposons de deux options pour auto-gérer nos points de terminaison : manuel et automatisé. Dans cet exemple, nous créons une fonction Lambda qui répond à la notification Amazon MWAA EventBridge. Vous pouvez également utiliser la notification EventBridge pour envoyer un Service de notification simple d'Amazon (Amazon SNS), tel qu'un e-mail, à une personne autorisée à créer manuellement le point de terminaison d'un VPC.
Tout d'abord, nous créons une fonction Lambda pour répondre à l'événement EventBridge qu'Amazon MWAA émettra.
- Sur la console Lambda, choisissez Créer une fonction.
- Pour Nom, Entrer
mwaa-create-lambda
. - Pour Runtime, choisissez Python 3.11.
- Selectionnez Créer une fonction.
- Pour Code, Dans le Source du code section, pour
lambda_function
, entrez le code suivant: - Selectionnez Déployer.
- Sur le configuration de la fonction Lambda, dans l'onglet Configuration générale section, choisissez Modifier.
- Pour Temps mort, incréez à 5 minutes et 0 seconde.
- Selectionnez Épargnez.
- Dans le Permissions section, sous Rôle d'exécution, choisissez le nom du rôle pour modifier les autorisations de cette fonction.
- Pour Politiques d'autorisation, choisissez le lien sous Nom de la politique.
- Selectionnez Modifier et ajoutez une virgule et la déclaration suivante :
La politique complète devrait ressembler à ce qui suit :
- Selectionnez Suivant jusqu'à ce que vous atteigniez la page de révision.
- Selectionnez Enregistrer les modifications.
Créer une règle EventBridge
Ensuite, nous configurons EventBridge pour envoyer les notifications Amazon MWAA à notre fonction Lambda.
- Sur la console EventBridge, choisissez Créer une règle.
- Pour Nom, entrez mwaa-create.
- Sélectionnez Règle avec un modèle d'événement.
- Selectionnez Suivant.
- Pour Méthode de création, choisissez Formulaire de modèle utilisateur.
- Selectionnez Modifier le motif.
- Pour Modèle d'événement, entrez les informations suivantes:
- Selectionnez Suivant.
- Pour Sélectionnez une cible, choisissez Fonction Lambda.
Vous pouvez également spécifier une notification SNS afin de recevoir un message lorsque l'état de l'environnement changes.
- Pour Fonction, choisissez
mwaa-create-lambda
. - Selectionnez Suivant jusqu'à ce que vous atteigniez la dernière section, puis choisissez Créer une règle.
Créer un environnement Amazon MWAA
Enfin, nous créons un environnement Amazon MWAA avec des points de terminaison gérés par le client.
- Sur la console Amazon MWAA, choisissez Créer un environnement.
- Pour Nom, entrez un nom unique pour votre environnement.
- Pour Version débit d'air, choisissez la dernière version d'Airflow.
- Pour Seau S3, choisissez Parcourir S3 et choisissez votre compartiment S3 ou entrez l'URI Amazon S3.
- Pour dossier DAG, choisissez Parcourir S3 Et choisissez le
dags/
dans votre compartiment S3 ou entrez l'URI Amazon S3. - Selectionnez Suivant.
- Pour Cloud privé virtuel, choisissez le VPC que vous avez créé précédemment.
- Pour Accès au serveur Web, choisissez Réseau public (accessible par Internet).
- Pour Groupes de sécurité, désélectionner Créer un nouveau groupe de sécurité.
- Choisissez le groupe de sécurité VPC partagé créé par le modèle CloudFormation.
Parce que les groupes de sécurité du Lien privé AWS les points de terminaison de l'étape précédente sont auto-référencés, vous devez choisir le même groupe de sécurité pour votre environnement Amazon MWAA.
- Pour Gestion des terminaux, choisissez Points de terminaison gérés par le client.
- Conservez les paramètres restants par défaut et choisissez Suivant.
- Selectionnez Créer un environnement.
Lorsque votre environnement est disponible, vous pouvez y accéder via le Ouvrir l’interface utilisateur d’Airflow lien sur la console Amazon MWAA.
Nettoyer
Le nettoyage des ressources qui ne sont pas activement utilisées réduit les coûts et constitue une bonne pratique. Si vous ne supprimez pas vos ressources, vous pouvez encourir des frais supplémentaires. Pour nettoyer vos ressources, procédez comme suit :
- Supprimer votre Environnement Amazon MWAA, Règle EventBridgeet une Fonction Lambda.
- Supprimer l' Points de terminaison VPC créé par la fonction Lambda.
- Supprimer tout groupes de sécurité créé, le cas échéant.
- Une fois la suppression des ressources ci-dessus terminée, supprimez le Pile CloudFormation pour vous assurer que vous avez supprimé toutes les ressources restantes.
Résumé
Cet article décrit comment automatiser la création d'environnement avec la prise en charge de VPC partagé dans Amazon MWAA. Cela vous donne la possibilité de gérer vos propres points de terminaison au sein de votre VPC, ajoutant ainsi la compatibilité aux VPC partagés ou autrement restreints. La spécification de points de terminaison gérés par le client offre également la possibilité de respecter des politiques de sécurité strictes en limitant explicitement l'accès aux ressources VPC à celles nécessaires à leurs environnements Amazon MWAA. Pour en savoir plus sur Amazon MWAA, reportez-vous au Guide de l'utilisateur Amazon MWAA. Pour plus d'articles sur Amazon MWAA, visitez le Page de ressources Amazon MWAA.
A propos de l'auteure
John Jackson possède plus de 25 ans d'expérience en matière de logiciels en tant que développeur, architecte système et chef de produit dans des startups et de grandes entreprises et est le chef de produit principal AWS responsable d'Amazon MWAA.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://aws.amazon.com/blogs/big-data/introducing-shared-vpc-support-on-amazon-mwaa/
- :possède
- :est
- :ne pas
- $UP
- 10
- 100
- 11
- 13
- 15%
- 200
- 25
- 41
- 72
- 8
- a
- capacité
- A Propos
- au dessus de
- accès
- accessible
- Compte
- hybrides
- à travers
- Action
- infection
- activement
- acyclique
- ajouter
- ajoutant
- ajout
- Supplémentaire
- Ajoute
- Après
- Tous
- permettre
- permis
- Permettre
- permet
- déjà
- aussi
- Amazon
- Amazon Web Services
- an
- et les
- tous
- Apache
- api
- apparaître
- en vigueur
- Archive
- SONT
- AS
- automatiser
- Automatisation
- automatiser
- disponibles
- AWS
- AWS CloudFormation
- basé
- BE
- car
- commencer
- nom
- va
- LES MEILLEURS
- jusqu'à XNUMX fois
- corps
- goupille
- tous les deux
- Pause
- fardeau
- mais
- by
- appelé
- CAN
- Peut obtenir
- Change
- Modifications
- des charges
- Selectionnez
- espace extérieur plus propre,
- client
- code
- COM
- Communautés
- compatibilité
- complet
- Complété
- connexion
- considéré
- Console
- Conteneurs
- contexte
- Corporations
- Costs
- pourriez
- engendrent
- créée
- crée des
- La création
- création
- des clients
- Clients
- JOUR
- données
- Base de données
- Réglage par défaut
- démontrer
- démontre
- déploiement
- décrire
- décrit
- détail
- détecter
- Développeur
- Développement
- différent
- dirigé
- document
- Ne pas
- deux
- pendant
- chacun
- Plus tôt
- Easy
- effet
- d'autre
- Endpoint
- critères
- Les ingénieurs
- assurer
- Entrer
- entrée
- Environment
- environnements
- Ether (ETH)
- Pourtant, la
- événement
- événements
- exemple
- exemples
- exister
- existant
- d'experience
- explicitement
- étendre
- les
- familier
- Fonctionnalité
- Déposez votre dernière attestation
- filtration
- finale
- Prénom
- Abonnement
- suit
- Pour
- trouvé
- De
- fonction
- plus
- En outre
- obtenez
- donne
- graphique
- Réservation de groupe
- Groupes
- Vous avez
- ayant
- hôtes
- HEURES
- Comment
- How To
- Cependant
- HTML
- http
- HTTPS
- IAM
- ID
- Identite
- if
- importer
- imposé
- in
- info
- d'information
- Infrastructure
- cas
- plutôt ;
- intégrations
- interagir
- Interfaces
- Internet
- développement
- Découvrez le tout nouveau
- aide
- IT
- SES
- jpg
- json
- juste
- ACTIVITES
- gros
- Nouveautés
- conduisant
- APPRENTISSAGE
- Bibliothèque
- LINK
- Listé
- enregistrement
- Style
- LES PLANTES
- FAIT DU
- gérer
- gérés
- manager
- gère
- Manuel
- manuellement
- de nombreuses
- Mai..
- Découvrez
- message
- minutes
- modifié
- modifier
- PLUS
- plusieurs
- must
- prénom
- nécessaire
- Besoin
- nécessaire
- réseau et
- Nouveauté
- next
- déclaration
- Notifications
- of
- on
- ouvert
- open source
- opération
- opérationnel
- Options
- or
- de commander
- organisation
- organisations
- Autre
- autrement
- nos
- au contrôle
- plus de
- propre
- propriétaire
- propriétaires
- Possède
- page
- participant
- participants
- Patron de Couture
- En attente
- autorisation
- autorisations
- Platon
- Intelligence des données Platon
- PlatonDonnées
- politiques
- politique
- Post
- Poteaux
- pratique
- conditions préalables
- empêche
- Directeur
- Privé
- privilégié
- privilèges
- procéder
- Produit
- chef de produit
- propriétés
- fournir
- fournit
- aportando
- Python
- R
- plutôt
- nous joindre
- recevoir
- recevoir
- réduit
- reportez-vous
- restant
- supprimez
- Supprimé
- conditions
- exigence
- ressource
- Resources
- Réagir
- réponse
- responsables
- restreindre
- limité
- restreindre
- Restrictif
- CV
- retourner
- Avis
- Rôle
- Itinéraire
- Règle
- Courir
- s
- même
- calendrier
- scientifiques
- secondes
- Section
- sécurité
- les politiques de sécurité
- sur le lien
- envoyer
- serveur
- service
- Services
- Paramétres
- commun
- Partages
- devrait
- similaires
- étapes
- So
- Logiciels
- Quelqu'un
- Identifier
- empiler
- Startups
- Région
- Déclaration
- États
- Statut
- étapes
- Étapes
- storage
- Boutique
- STORES
- strict
- sous-réseaux
- tel
- Support
- Système
- tâches
- modèle
- que
- qui
- La
- leur
- Les
- puis
- Là.
- this
- ceux
- trois
- à
- outil
- oui
- deux
- type
- sous
- sous-jacent
- expérience unique et authentique
- jusqu'à
- la mise à jour
- URI
- utilisé
- d'utiliser
- Utilisateur
- Interface utilisateur
- utilisateurs
- en utilisant
- Plus-value
- Valeurs
- version
- via
- Voir
- Visiter
- souhaitez
- we
- web
- le serveur web
- services Web
- quand
- qui
- sera
- comprenant
- dans les
- sans
- activités principales
- travailleur
- workflows
- pourra
- années
- you
- Votre
- zéphyrnet
- Zip